2012-03-23 22 views
1

アクセサーを関数にインライン展開するときのパフォーマンスの向上を測定しようとしています。VisualVMを使用してメソッドの総トータル時間を取得する方法

インライン化の結果として、メソッドの自己時間は(もちろん)増加します。

メソッドの合計時間と呼び出しを測定する必要があります。 VisualVMでは、プロファイラにはセルフタイムの合計が表示され、スナップショットではコールツリー内の各位置の合計時間を指定できます。私が測定する必要があるのは、アプリケーション全体の合計トータル時間です。

おかげ

答えて

1

デフォルトパフォーマンスの微調整免責事項:あなたはメソッドをインライン化する必要がありますか? JVM(v1.6以降)は、必要なときに自動的にこれを行います。 Javaの関数をインライン化することは非常にまれです。

VisualVMでは、測定するクラスを定義することができます。関数をインライン化した呼び出しクラスのみを定義するか、関数をインライン化するクラスを少なくとも除外すると、呼び出されたすべての関数が「self time」に追加されます。

+0

+1アクセサーは、必要に応じてホットスポットVMによってインライン展開されます –

+0

私が関心のあるクラスにプロファイルを限定するプリセットを作成すると、コールツリー内の関数に対して1つのエントリしか得られません。私は必要なすべての統計を持っています、ありがとう。 – jsj

関連する問題