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:獲取最后一個任務的信息,即任務的名稱和耗時。