在Java中經常需要統計程序的使用時間,如果只是一個時間段統計比較好處理,可以直接使用System.currentTimeMillis()。但如果一個程序中包含多個步驟,需要統計每個步驟耗時,並且需要統計耗時分佈,找出那個步驟耗時最多,好做一下優化時,就比較費力了。這個使用可以使用Spring的工具StopWatch,比如下面例子:
StopWatch stopWatch = new StopWatch(); stopWatch.start("aaa"); TimeUnit.SECONDS.sleep(10); stopWatch.stop(); stopWatch.start("bbb"); TimeUnit.SECONDS.sleep(5); stopWatch.stop(); System.out.println(stopWatch.prettyPrint());
輸出結果:
StopWatch '': running time (millis) = 15003 ----------------------------------------- ms % Task name ----------------------------------------- 10002 067% aaa 05001 033% bbb
是不是很方便,很清晰直觀。