2012-06-07 45 views
4

我需要在我的應用程序的特定部分測量性能。 要計算這些度量,我使用Spring StopWatch類。 在一個方法中,有一個循環,我需要測量每次迭代的執行。Spring是否提供了一個類來衡量迭代代碼的性能?

我想要的是,對於循環部分,計數器以及最小/最大/平均值。 不幸的是,Spring StopWatch類沒有提供這樣的功能。

例如,下面的代碼:

StopWatch watch = new StopWatch("foo"); 
watch.start("First process"); 
doSomething(); 
watch.stop(); 
for (int i = 0; i < 10; i++) { 
    watch.start("loop"); 
    doAnotherThing(); 
    watch.stop(); 
} 
System.out.println(watch.prettyPrint()); 

將輸出:

StopWatch 'foo': running time (millis) = 1469 
----------------------------------------- 
ms  %  Task name 
----------------------------------------- 
01000 068% First process 
00078 005% loop 
00000 000% loop 
00016 001% loop 
00047 003% loop 
00015 001% loop 
00047 003% loop 
00094 006% loop 
00000 000% loop 
00109 007% loop 
00063 004% loop 

我想是有:

StopWatch 'foo': running time (millis) = 1469 
----------------------------------------- 
ms  %  Task name 
----------------------------------------- 
01000 068% First process 
00469 032% loop | min: 0 ; max: 109 ; average: 47 ; count: 10 

有沒有辦法實現,使用彈簧?

PS:我知道perf4j將允許,但如果我能避免增加新的圖書館,這將是巨大的......

回答

0

我不知道任何這樣的類的春季

如果你不想添加Perf4J,我會把它封裝到你自己的類中。

一般統計類是一個方便的東西。只要確保線程安全。

相關問題