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將允許,但如果我能避免增加新的圖書館,這將是巨大的......