Guava 之 StopWatch 计时器

一、Maven


<dependency>
    <groupId>com.google.guavagroupId>
    <artifactId>guavaartifactId>
    <version>23.0version>
dependency>

二、方法

  • createStarted():创建并启动一个新的 stopwatch 对象,使用 System.nanoTime() 作为时间资源
  • createStarted(Ticker ticker):创建并启动一个新的 stopwatch 对象,使用特定的时间资源
  • createUnstarted():创建但不启动一个新的 stopwatch 对象,使用 System.nanoTime() 作为时间资源
  • createUnstarted(Ticker ticker):创建但不启动一个新的 stopwatch 对象,使用特定的时间资源
  • Duration elapsed():返回将此秒表上显示的当前经过时间作为持续时间
  • long elapsed(TimeUnit desiredUnit):用特定的格式返回这个 stopwatch 经过的时间
  • boolean isRunning() :若 start 方法被调用,stop 方法还没有调用,返回真
  • Stopwatch reset():把 stopwatch 经过的时间设置为零,状态设置为停止
  • Stopwatch start():启动 stopwatch
  • Stopwatch stop():停止 stopwatch,读取的话将会返回经历过的时间
  • String toString() :返回字符串形式的elapsed time

三、案例

// 创建自动 start 的计时器
Stopwatch watch1 = Stopwatch.createStarted();
Thread.sleep(1000L);
long time = watch1.elapsed(TimeUnit.MILLISECONDS);
System.out.println("代码执行时长:" + time); // 结果1003

// 创建非自动 start 的计时器
Stopwatch watch2 = Stopwatch.createUnstarted();
watch2.start();
Thread.sleep(1000L);
watch2.stop();
watch2.start();
Thread.sleep(500L);
time = watch2.elapsed(TimeUnit.MILLISECONDS);
System.out.println("代码执行时长:" + time); // 结果1500

Stopwatch watch3 = Stopwatch.createUnstarted();
watch3.start();
Thread.sleep(1000L);
time = watch3.elapsed(TimeUnit.MILLISECONDS);
System.out.println("代码执行时长:" + time); // 结果1000

你可能感兴趣的:(工具类)