Spring定时器StopWatch

简单总结一句,Spring提供的计时器StopWatch对于秒、毫秒为单位方便计时的程序,尤其是单线程、顺序执行程序的时间特性的统计输出支持比较好。也就是说假如我们手里面有几个在顺序上前后执行的几个任务,而且我们比较关心几个任务分别执行的时间占用状况,希望能够形成一个不太复杂的日志输出,StopWatch提供了这样的功能。而且Spring的StopWatch基本上也就是仅仅为了这样的功能而实现。

 

实际中用到的代码:

public void run() {
	LOGGER.info("[" + taskName + "]开始执行");
        StopWatch stopWatch = new StopWatch();
        stopWatch.start(taskName);
        try {
            doTask();
        } catch (Exception e) {
            LOGGER.error("[" + taskName + "]执行失败", e);
        } finally {
            stopWatch.stop();
            LOGGER.info("[" + taskName + "]执行结束,耗时:" + stopWatch.getTotalTimeMillis() + "毫秒");
        }
}

 

另外,还可以使用一些其他的方法:

import org.springframework.util.StopWatch;  
  
public class StopWatchDemo {  
  
    /** 
     * @param args 
     * @throws InterruptedException 
     */  
    public static void main(String[] args) throws InterruptedException {  
        // TODO Auto-generated method stub  
        StopWatch clock = new StopWatch();  
        clock.start("TaskOneName");  
        Thread.sleep(1000 * 3);// 任务一模拟休眠3秒钟  
        clock.stop();  
        clock.start("TaskTwoName");  
        Thread.sleep(1000 * 10);// 任务一模拟休眠10秒钟  
        clock.stop();  
        clock.start("TaskThreeName");  
        Thread.sleep(1000 * 10);// 任务一模拟休眠10秒钟  
        clock.stop();  
  
        System.out.println(clock.prettyPrint());  
    }  
  
} 

 

控制台输出如下:
StopWatch '': running time (millis) = 22926
-----------------------------------------
ms     %     Task name
-----------------------------------------
02990  013%  TaskOneName
09968  043%  TaskTwoName
09968  043%  TaskThreeName

 

 

http://blog.youkuaiyun.com/ioe_gaoyong/article/details/22788789

 

### 回答1: SpringStopWatch是一个用于计时的工具类,它可以帮助我们精确地测量一段代码的执行时间。它提供了开始计时、停止计时、重新开始计时等方法,可以用于性能分析、性能优化等场景。使用StopWatch需要在项目中引入spring-context模块。 ### 回答2: SpringStopWatch是一个用于计时的工具类。它可以帮助我们在代码中测量和记录方法的执行时间,以便我们可以更好地优化性能。 使用StopWatch非常简单。首先,我们需要创建一个StopWatch对象实例,可以使用 `new StopWatch()` 来实例化。然后,我们可以使用 `start()` 方法启动计时器,并在需要计时的代码段前调用它。接着,我们可以执行我们需要计时的代码段。执行完成后,我们可以通过调用 `stop()` 方法停止计时器。 StopWatch还提供了其他一些方法来获取经过的时间。我们可以使用 `getTotalTimeMillis()` 方法获取总共经过的时间,以毫秒为单位。我们还可以使用 `getTotalTimeSeconds()` 方法获取总共经过的时间,以秒为单位。此外,我们还可以使用 `prettyPrint()` 方法将计时信息以人类可读的格式打印出来。 使用StopWatch可以帮助我们更好地了解代码执行时间,进而优化性能。我们可以根据计时结果,查找耗时较长的方法,然后针对这些方法进行性能优化。比如,我们可以尝试减少方法的执行时间,或者优化算法等等。通过不断地优化,我们可以提高应用的性能和用户体验。 总的来说,SpringStopWatch是一个方便实用的计时工具类,它可以帮助我们测量和记录方法的执行时间,帮助我们优化应用的性能。 ### 回答3: SpringStopWatch是一个用于计时的工具类。它可以帮助我们精确地测量代码段或方法的执行时间。 StopWatch提供了以下几个主要的方法: 1. start():开始计时。调用start()方法后,StopWatch将记录当前时间作为开始时间。 2. stop():停止计时。调用stop()方法后,StopWatch将记录当前时间作为结束时间。 3. getTotalTimeMillis():获取总的执行时间,以毫秒为单位。调用stop()方法后,可以使用getTotalTimeMillis()方法获取代码段或方法的执行时间。 4. getLastTaskTimeMillis():获取最后一次任务的执行时间,以毫秒为单位。这个方法适用于多个任务依次执行的情况。 5. prettyPrint():将执行时间以易读的格式打印出来。调用prettyPrint()方法可以将计时结果输出到控制台。 通过使用StopWatch,我们可以方便地对代码的执行时间进行统计和优化,尤其适用于需要频繁调试和性能优化的场景。例如,在性能测试中,我们可以使用StopWatch来统计某个方法的执行时间,并根据结果进行优化。 总之,SpringStopWatch是一个实用的工具类,可以帮助我们测量代码段或方法的执行时间,便于性能优化和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值