Spring 计时器 StopWatch
Spring提供了很多实用性的工具,StopWatch计时器可以用于我们代码执行的时间差
StopWatch 方法
- 创建:StopWatch stopWatch = new StopWatch(); //可以带参数
- 开始任务: stopWatch.start("taskName");
- 结束任务: stopWatch.stop();
- 打印: stopWatch.prettyPrint();
在日常开发中,我们经常需要通过记录代码执行的时间差,大家应该都比较常用System.currentTimeMillis 。今天我们列举两种方式,来看看其中的差异。
System.currentTimeMillis
public void oper1() throws Exception{
long start = System.currentTimeMillis();
TimeUnit.SECONDS.sleep(5);
long t1 = System.currentTimeMillis();
TimeUnit.SECONDS.sleep(2);
long t2 = System.currentTimeMillis();
TimeUnit.SECONDS.sleep(4);
long end = System.currentTimeMillis();
log.info("耗时统计:t1 -> {}毫秒, t2 -> {}毫秒, t3 -> {}毫秒", t1 - start, t2 - t1, end - t2);
}
我们需要设置好起始时间点和终止时间点,然后相减得出时间差。
StopWatch
public void oper2() throws Exception{
StopWatch stopWatch = new StopWatch("oper2");
stopWatch.start("t1");
TimeUnit.SECONDS.sleep(5);
stopWatch.stop();
stopWatch.start("t2");
TimeUnit.SECONDS.sleep(2);
stopWatch.stop();
stopWatch.start("t2");
TimeUnit.SECONDS.sleep(4);
stopWatch.stop();
log.info(stopWatch.prettyPrint());
}
两段代码输出如下
StopWatch 输出的单位为纳秒 (1s = 10的9次方 ns) 还可以格式化输出更加直观,输出task名称,百分比等信息。
本文由mdnice多平台发布