【SpringBoot】StopWatch工具类的使用

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

介绍

StopWatch类是Spring Framework中的一个实用工具类,位于org.springframework.util包中。它的主要作用是用于简单、方便地测量代码执行时间,通常用于性能监控和调试。

  • 启动和停止计时:可以启动和停止多个任务的计时。
  • 任务命名:可以为每个计时任务指定一个名称,以便于区分和记录。
  • 统计信息:可以获取每个任务的执行时间、总执行时间以及平均执行时间等统计信息。
  • 日志输出:可以将计时结果格式化为字符串,方便输出到日志或控制台。

示例代码

import org.springframework.util.StopWatch;

public class StopWatchExample {

    public static void main(String[] args) throws InterruptedException {
        StopWatch stopWatch = new StopWatch("MyStopWatch");

        // 开始第一个任务
        stopWatch.start("Task 1");
        // 模拟任务执行
        Thread.sleep(500);
        // 停止第一个任务
        stopWatch.stop();

        // 开始第二个任务
        stopWatch.start("Task 2");
        // 模拟任务执行
        Thread.sleep(300);
        // 停止第二个任务
        stopWatch.stop();

        // 开始第三个任务
        stopWatch.start("Task 3");
        // 模拟任务执行
        Thread.sleep(200);
        // 停止第三个任务
        stopWatch.stop();

        // 打印任务统计信息
        System.out.println(stopWatch.prettyPrint());
        System.out.println("Total time in milliseconds: " + stopWatch.getTotalTimeMillis());
        System.out.println("Total time in seconds: " + stopWatch.getTotalTimeSeconds());
        System.out.println("Short summary: " + stopWatch.shortSummary());
    }
}

输出:

StopWatch 'MyStopWatch': running time = 1009134335 ns
---------------------------------------------
ns         %     Task name
---------------------------------------------
504238209  050%  Task 1
300421584  030%  Task 2
204474542  020%  Task 3

Total time in milliseconds: 1009
Total time in seconds: 1.009134335
Short summary: StopWatch 'MyStopWatch': running time = 1009134335 ns

使用场景

  • 性能监控:在开发和测试阶段,使用StopWatch测量关键代码段的执行时间,以便优化性能。
  • 调试:在排查性能问题时,使用StopWatch定位耗时较长的代码段。
  • 日志记录:在生产环境中,记录任务的执行时间,以便后续分析和优化。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值