美文网首页工具类安全收集工具使用
使用 StopWatch 优雅打印执行耗时

使用 StopWatch 优雅打印执行耗时

作者: Restart白蓝 | 来源:发表于2021-11-23 14:33 被阅读0次

    spring-framework提供了一个StopWatch类可以做类似任务执行时间控制,也就是封装了一个对开始时间,结束时间记录工具

    这是以前的写法

    System.currentTimeMillis()
    

    现在
    1、统计输出总耗时

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

    2、输出最后一个任务的耗时

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

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

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

    不同的打印结果

    getTotalTimeSeconds() 获取总耗时秒,同时也有获取毫秒的方法
    prettyPrint() 优雅的格式打印结果,表格形式
    shortSummary() 返回简短的总耗时描述
    getTaskCount() 返回统计时间任务的数量
    getLastTaskInfo().getTaskName() 返回最后一个任务TaskInfo对象的名称

    相关文章

      网友评论

        本文标题:使用 StopWatch 优雅打印执行耗时

        本文链接:https://www.haomeiwen.com/subject/dlywtrtx.html