4

アプリケーションの特定の部分のパフォーマンスを測定する必要があります。これらの測定値を計算するには、SpringStopWatchクラスを使用します。メソッドには、各反復の実行を測定する必要があるループがあります。

私が望むのは、ループ部分、カウンター、および最小/最大/平均値です。残念ながら、SpringStopWatchクラスにはそのような機能はありません。

たとえば、次のコード:

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

Spring を使用してそれを達成する方法はありますか?

ps: perf4jがそれを許可することは知っていますが、新しいライブラリの追加を避けることができれば、それは素晴らしいことです...

4

1 に答える 1

0

私は春にそのようなクラスを知りません

Perf4J を追加したくない場合は、独自のクラスにカプセル化します。

一般的な Statistics クラスはあると便利です。必ずスレッドセーフにしてください。

于 2012-06-07T13:19:21.790 に答える