首页 > 其他分享 >StopWatch 秒表

StopWatch 秒表

时间:2022-08-24 10:59:05浏览次数:34  
标签:String System stopWatch 任务 StopWatch 秒表

StopWatch介绍

  • StopWatch是spring-core包中的工具类,它是一个秒表工具,可以计时指定代码块的运行时间,做性能分析等等
  • 可以隐藏System.currentTimeMillis(),提高代码的可读性,减少计算错误的可能性  
  • StopWatch不保证线程安全


 

StopWatch测试

@Test
public void test() throws InterruptedException {
    StopWatch stopWatch = new StopWatch("任务计时测试");
    
    stopWatch.start("任务1");
    Thread.sleep(1000L);
    stopWatch.stop();

    stopWatch.start("任务2");
    Thread.sleep(1500L);
    stopWatch.stop();

    stopWatch.start("任务3");
    Thread.sleep(2000L);
    System.out.println(stopWatch.getLastTaskName() + ",是否正在运行中:" + stopWatch.isRunning());
    stopWatch.stop();

    System.out.println("StopWatch是否正在运行中:" + stopWatch.isRunning());
    // 总计耗时
    System.out.println("总计耗时:" + stopWatch.getTotalTimeMillis() + "毫秒");
    System.out.println("总计耗时:" + stopWatch.getTotalTimeSeconds() + "秒");
    
    // 分别统计每个任务耗时
    Arrays.stream(stopWatch.getTaskInfo()).forEach(sw -> 
            System.out.println(sw.getTaskName() + ",耗时" + sw.getTimeSeconds() + "秒"));
    
    // 打印详细信息
    System.out.println(stopWatch.prettyPrint());
}

 

StopWatch方法

- spring version:5.3.18

StopWatch()
构造函数,构建一个新的秒表,不开始任何任务
StopWatch(String id)
构造函数,构建一个新的秒表,同时指定一个任务ID,不开始任何任务
String getId()
获取秒表的ID
void start(String taskName)
指定一个任务名称,启动当前任务
void stop()
停止当前任务
boolean isRunning()
当前表秒是否处于运行中
String currentTaskName()
获取当前正在运行中的任务名称
long getLastTaskTimeMillis()
获取上一个任务花费时间,单位秒
String getLastTaskName()
获取上一个任务名称
TaskInfo getLastTaskInfo()
获取上一个任务信息,TaskInfo为StopWatch的内部静态类(包含任务名称,任务花费时间)
long getTotalTimeNanos()
获取所有任务花费时间,单位纳秒
long getTotalTimeMillis()
获取所有任务花费时间,单位毫秒
double getTotalTimeSeconds()
获取所有任务花费时间,单位秒
int getTaskCount()
获取任务数量
TaskInfo[] getTaskInfo()
获取所有任务信息
String shortSummary()
获取秒表总运行时间的简短描述
String prettyPrint()
生成一个带有描述所有执行任务的表格的字符串
String toString()
生成一个信息字符串,描述所有执行的任务

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:String,System,stopWatch,任务,StopWatch,秒表
From: https://www.cnblogs.com/coolw/p/16619045.html

相关文章

  • Delphi使用TStopwatch计时器精确计时【转】
    引用 System.Diagnostics单元属性:Elapsed获取当前实例测量得出的总运行时间。ElapsedMilliseconds 获取当前实例测量得出的总运行时间(以毫秒为......
  • java stopwatch 使用
    publicclassProgram{publicstaticvoidmain(String[]args)throwsInterruptedException{varsw=newStopWatch("模板测试");sw.start......