在代码调试中为了统计耗时需要输出时间时利用StopWatch可方便的进行统计,然后对时间长的进行优化。
常用方法
返回值 | 方法 | Desc |
---|---|---|
Stopwatch | static createStarted() | 使用System.nanoTime()其时间源创建(并启动)新的Stopwatch |
Stopwatch | static createStarted(Ticker ticker) | 使用指定的时间源创建(并启动)新的Stopwatch |
Stopwatch | static createUnstarted() | 使用System.nanoTime()作为其时间源创建(但不启动)新的Stopwatch |
Stopwatch | static createUnstarted(Ticker ticker) | 使用指定的时间源创建(但不启动)新的Stopwatch |
Duration | elapsed() | 以秒为单位返回此Stopwatch经过时间Duration |
long | elapsed(TimeUnit desiredUnit) | 用返回此Stopwatch经过时间,以所需的时间单位表示,并且向下取整 |
boolean | isRunning() | 若 start 方法被调用,stop 方法还没有调用,返回真 |
Stopwatch | reset() | 把 Stopwatch 经过的时间设置为零,状态设置为停止 |
Stopwatch | start() | 启动 Stopwatch |
Stopwatch | stop() | 停止 Stopwatch |
String | toString() | 返回字符串形式的elapsed time |
TimeUnit
枚举常量 | 描述 |
---|---|
DAYS | 天 |
HOURS | 小时 |
MINUTES | 分钟 |
SECONDS | 秒 |
MILLISECONDS | 毫秒 |
MICROSECONDS | 微秒 |
NANOSECONDS | 纳秒 |
案例
public static void main(String[] args) throws Exception{
// 创建stopwatch并开始计时
Stopwatch stopwatch = Stopwatch.createStarted();
System.out.println("-- 开始计时 --");
Thread.sleep(1950L);
System.out.println(stopwatch);// 1.955 s
// 向下取整 单位:秒
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 1
// 停止计时
System.out.println("-- 停止计时 --");
stopwatch.stop();
Thread.sleep(2000L);
System.out.println(stopwatch);// stop()不在计时 1.959 s
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 1
// 再次计时
System.out.println("-- 再次计时 --");
stopwatch.start();
Thread.sleep(100L);
System.out.println(stopwatch);// 2.067 s
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 2
// 重置并开始
System.out.println("-- 重置并开始 --");
stopwatch.reset().start();
Thread.sleep(1500);
System.out.println(stopwatch);// 1.505 s
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 1
// 检查isRunning
System.out.println("-- 检查isRunning --");
System.out.println(stopwatch.isRunning());// true
// 打印
System.out.println("-- 打印 --");
System.out.println(stopwatch.toString());// 1.506 s
}
1人点赞
作者:方穹轩
链接:https://www.jianshu.com/p/06915946d640
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。