spring包含了很多方便的实用的工具,今天就来学习StopWatch时钟⏰
StopWatch是Spring核心包中的一个工具类,它是一个简单的秒表工具,可以计时指定代码段的运行时间以及汇总这个运行时间,
使用它可以隐藏使用 System.currentTimeMillis() ,提高应用程序代码的可读性并减少计算错误的可能性。
注意事项
StopWatch对象不是设计为线程安全的,并且不使用同步。
使用场景
一般是在开发过程中验证性能,而不是作为生产应用程序的一部分
方法介绍
代码实例
public class StopWatchTest {
public static void main(String[] args) throws InterruptedException {
StopWatch stopWatch = new StopWatch("测试秒表");
stopWatch.start("暂停100毫秒");
Thread.sleep(100 * 1);
stopWatch.stop();
stopWatch.start("暂停200毫秒");
Thread.sleep(100 * 2);
stopWatch.stop();
stopWatch.start("暂停300毫秒");
Thread.sleep(100 * 3);
stopWatch.stop();
stopWatch.setKeepTaskList(true); //是否构建TaskInfo信息
Arrays.stream(stopWatch.getTaskInfo()).forEach(sw ->
System.out.println(sw.getTaskName()+" "+
sw.getTimeMillis()+" "+sw.getTimeSeconds()));
// 在start()方法和stop()方法间时,isRunning()返回true
System.out.println(stopWatch.isRunning());
System.out.println(stopWatch.prettyPrint());//打印详细信息
System.out.println(stopWatch.shortSummary());//打印简要信息
}
}
控制台结果
暂停100毫秒 110 0.11
暂停200毫秒 201 0.201
暂停300毫秒 310 0.31
false
StopWatch '测试秒表': running time (millis) = 621
-----------------------------------------
ms % Task name
-----------------------------------------
00110 018% 暂停100毫秒
00201 032% 暂停200毫秒
00310 050% 暂停300毫秒
一般用来测试和日志输出用