【StopWatch】JAVA优雅计时
Spring框架中的StopWatch是一个用于测量代码执行时间的工具类,特别适用于多任务耗时统计和性能调优。 其核心用法包括创建实例、启动/停止计时、获取结果及格式化输出,需依赖spring-core库
spring-core的5.3.x版本是最后一个支持Java8的版本,高于这个版本的,需要安装高版本JDK
代码及注释
java
public static void main(String[] args) {
// 创建一个计时器
StopWatch stopWatch = new StopWatch();
// 开始计时,可以自定义一个name,用于区分或者描述计时
stopWatch.start("第一阶段");
// 获取当前任务名称
System.out.printf("开始执行:%s\n", stopWatch.currentTaskName());
// 模拟一个耗时操作
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 停止计时
stopWatch.stop();
// 获取上一个任务的耗时,在停止计时之后调用
System.out.printf("%s耗时:%sms%n", stopWatch.getLastTaskName(), stopWatch.getLastTaskTimeMillis());
stopWatch.start("第二阶段");
// 模拟一个耗时操作
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
}
stopWatch.stop();
// 获取上一个任务的耗时,在停止计时之后调用
System.out.printf("%s耗时:%sms%n", stopWatch.getLastTaskName(), stopWatch.getLastTaskTimeMillis());
// 获取所有任务的耗时
System.out.printf("总耗时:%sms%n", stopWatch.getTotalTimeMillis());
System.out.println(stopWatch.prettyPrint());
}