springframework
中的StopWatch
類可以測量一個時間間隔的運行時間,也可以測量多個時間間隔的總運行時間。一般用來測量代碼執行所用的時間或者計算性能數據,在優化代碼性能上可以使用Stopwatch
來測量時間。common.lang
包里面也有這個工具,用法類似,但是不能任務名稱,查看結果不方便。
示例如下
@Test
public void test7() throws Exception {
StopWatch watch = new StopWatch("測試運行時間");
watch.start("任務1");
TeaPersonCommentModel one = new TeaPersonCommentModel();
one.setId("1");
one.setContent("拼語1");
watch.stop();
watch.start("任務2");
List<TeaPersonCommentModel> test = Lists.newArrayList();
Optional<List<TeaPersonCommentModel>> testOptionl = Optional.ofNullable(test);
watch.stop();
System.out.println(watch.prettyPrint());
}
執行結果如下:
StopWatch '測試運行時間': running time (millis) = 15
-----------------------------------------
ms % Task name
-----------------------------------------
00000 000% 任務1
00015 100% 任務2
三列分別為監控代碼段的花費時間(毫秒)、百分比、名稱。可以很直觀看出每段代碼的運行時間以及所占比分比,幫助我們快速找到主要性能問題