Skip to content

【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());
}

运行截图

image-20250624200005184