StopWatch

发布时间:2024年01月19日

StopWatch替换System.currentTimeMillis() 统计代码耗时

示例:

import org.springframework.util.StopWatch;
 
public class SpringStopWatchExample {
 
    public static void main (String[] args) throws InterruptedException {
        StopWatch sw = new StopWatch();
        sw.start();
        //long task simulation
        Thread.sleep(1000);
        sw.stop();
        System.out.println(sw.getTotalTimeMillis());
    }
}

输出
?

1013

输出最后一个任务的耗时

public class SpringStopWatchExample2 {
 
    public static void main (String[] args) throws InterruptedException {
        StopWatch sw = new StopWatch();
        sw.start("A");//setting a task name
        //long task simulation
        Thread.sleep(1000);
        sw.stop();
        System.out.println(sw.getLastTaskTimeMillis());
    }
}

输出

1009

以优雅的格式打出所有任务的耗时以及占比

import org.springframework.util.StopWatch;
 
public class SpringStopWatchExample3 {
 
    public static void main (String[] args) throws InterruptedException {
        StopWatch sw = new StopWatch();
        sw.start("A");
        Thread.sleep(500);
        sw.stop();
        sw.start("B");
        Thread.sleep(300);
        sw.stop();
        sw.start("C");
        Thread.sleep(200);
        sw.stop();
        System.out.println(sw.prettyPrint());
    }
}

输出

StopWatch '': running time (millis) = 1031
-----------------------------------------
ms     %     Task name
-----------------------------------------
00514  050%  A
00302  029%  B
00215  021%  C

序列服务输出耗时信息

@Override
public long nextSeq(String name) {
    StopWatch watch = new StopWatch();
    watch.start("单序列获取总消耗");
    long sequence = generator.generateId(name);
    watch.stop();
    logger.info(watch.prettyPrint());
    return sequence;
}

更多用法

不同的打印结果

  1. getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒的方法

  2. prettyPrint() 优雅的格式打印结果,表格形式

  3. shortSummary() 返回简短的总耗时描述

  4. getTaskCount() 返回统计时间任务的数量

  5. getLastTaskInfo().getTaskName() 返回最后一个任务TaskInfo对象的名称
    ?

?

文章来源:https://blog.csdn.net/qq_45718545/article/details/135688502
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。