0

同じJAMon Monitorクラスを使用して、異なる処理ステップを監視することは可能ですか? たとえば、コード例では、「Point1」と「Point2」の実行時間を測定したいと考えています。ただし、この例では、2 番目のステップに関する統計のみが返されます。もちろん、タイプ Monitor のオブジェクトをいくつか作成できます。しかし、おそらくもっときれいな方法がありますか?

Monitor mon = null;     
for(int i =0; i < 1000; i++){
    //Part1
    mon = MonitorFactory.start("Point 1");
    Thread.sleep(2);
    mon.stop();     
    
    //Part2
    mon = MonitorFactory.start("Point 2");
    mon.stop();
}
    
System.out.println(mon.toString());

出力:

JAMon Label=Point 2, Units=ms.: (LastValue=0.0, Hits=1000.0, Avg=0.001, Total=1.0, Min=0.0, Max=1.0, Active=0.0, Avg Active=1.0, Max Active=1.0,最初のアクセス=Wed Jun 17 10:40:44 CEST 2015、最終アクセス=Wed Jun 17 10:40:46 CEST 2015)

望ましい出力:

JAMon Label=Point 1, Units=ms.: (LastValue=0.0, Hits=1000.0, Avg=0.001, Total=1.0, Min=0.0, Max=1.0, Active=0.0, Avg Active=1.0, Max Active=1.0,最初のアクセス=Wed Jun 17 10:40:44 CEST 2015、最終アクセス=Wed Jun 17 10:40:46 CEST 2015)

JAMon Label=Point 2, Units=ms.: (LastValue=0.0, Hits=1000.0, Avg=0.001, Total=1.0, Min=0.0, Max=1.0, Active=0.0, Avg Active=1.0, Max Active=1.0,最初のアクセス=Wed Jun 17 10:40:44 CEST 2015、最終アクセス=Wed Jun 17 10:40:46 CEST 2015)

4

2 に答える 2

0

他の答えよりも良い方法があります:

for( Object monitor: MonitorFactory.getMap().values() ){
    System.out.println( monitor ); 
}

これにより、これまでに使用されたすべてのモニターが印刷されます。すべてのスレッドで。まさにあなたが望むもの。

ここでコードと出力の完成例を確認できます。

于 2015-11-27T15:02:26.590 に答える