JAVA中用StopWatch計算代碼耗時的方法


  StopWatch翻譯過來的意思就是秒表,其作用也就像我們平時使用的秒一樣。spring中就有提供這個工具類(org.springframework.util.StopWatch)。

 

  日常開發中,經常需要看方法各部分的耗時,通常的做法就是通過插樁的方式來統計耗時,如下:

1     long startTime = System.currentTimeMillis();
2     Thread.sleep(1000);
3     long finishTime = System.currentTimeMillis();
4     System.out.println("請求耗時:" + (finishTime - startTime));

  如果有多個就要重復寫多個,比較繁瑣,這個時候就可以用StopWatch工具類。如下:

 1     StopWatch sw = new StopWatch();
 2 
 3     sw.start("校驗耗時");
 4     Thread.sleep(1000);
 5     sw.stop();
 6 
 7     sw.start("組裝報文耗時");
 8     Thread.sleep(2000);
 9     sw.stop();
10 
11     sw.start("請求耗時");
12     Thread.sleep(1000);
13     sw.stop();
14 
15     System.out.println(sw.prettyPrint());
16     System.out.println(sw.getTotalTimeMillis());

  即使需要加多個位置,也很方便,用prettyPrint方法,可以帶格式自動輸出各個任務的情況,如下:

  StopWatch還有一些其他的方法可以使用:

prettyPrint:用自帶格式輸出所有任務信息。

getTaskInfo:獲取所有任務的信息,即各個任務的名稱和耗時。(如果想自定義輸出一些內容,或者格式,可以從這里獲取所有任務的信息)

getTotalTimeMillis:獲取任務總耗時(毫秒)。

getTotalTimeSeconds:獲取任務總耗時(秒)。

getTaskCount:獲取任務總數。

getLastTaskName:獲取最后一個任務的名稱。

getLastTaskTimeMillis:獲取最后一個任務的耗時(毫秒)。

getLastTaskInfo:獲取最后一個任務的信息,即任務的名稱和耗時。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM