JProfiler ヘルプ

スナップショットの比較

現在のアプリケーションのランタイム特性を以前のバージョンと比較することは、パフォーマンスリグレッションを防ぐための一般的な品質保証手法です。また、2つの異なるユースケースを比較して一方が他方より遅い理由を突き止めたい場合など、単一のプロファイリングセッションの範囲内でパフォーマンス問題を解決するのにも役立ちます。どちらの場合も、関心のある記録データを含むスナップショットを保存し、メニューからセッション→新規ウィンドウでスナップショットを比較を呼び出すか、スタートセンターのスナップショットを開くタブで複数のスナップショットを比較ボタンをクリックして、JProfilerのスナップショット比較機能を使用します。

スナップショットの選択

比較は別のトップレベルウィンドウで作成および表示されます。まず、スナップショットセレクターにいくつかのスナップショットを追加します。次に、関心のあるスナップショットを選択し、比較ツールバーボタンをクリックすることで、リストされた2つ以上のスナップショットから比較を作成できます。リスト内のスナップショットファイルの順序は重要です。すべての比較において、リスト内でより下にあるスナップショットほど、より新しい日時に記録されたとみなされるためです。スナップショットを手動で並べ替えるだけでなく、名前または作成日時でソートすることもできます。

JProfilerのメインウィンドウのビューとは異なり、比較ビューにはパラメーターをその場で調整できるドロップダウンリストの代わりに、上部に固定のビューパラメーターが表示されます。すべての比較で比較用のパラメーターを収集するウィザードが表示され、同じパラメーターで同じ比較を複数回実行できます。ウィザードは前回の呼び出し時のパラメーターを記憶しているため、複数のスナップショットのセットを比較する場合でも設定を繰り返す必要はありません。いつでも完了ボタンでウィザードをショートカットするか、インデックス内のステップをクリックして別のステップにジャンプできます。

比較がアクティブな場合、分析されたスナップショットには番号のプレフィックスが表示されます。2つのスナップショットを対象とする比較では、表示される差分はスナップショット2の測定値からスナップショット1の測定値を引いたものになります。

CPUの比較では、1つ目と2つ目のスナップショットに同じスナップショットを使用し、ウィザードで異なるスレッドまたはスレッドグループを選択できます。

テーブルによる比較

最も単純な比較は、「オブジェクト」メモリ比較です。これはヒープウォーカーの「すべてのオブジェクト」、「記録されたオブジェクト」、または「クラス」ビューのデータを比較できます。比較の各カラムにはインスタンス数とサイズの差分が表示されますが、双方向バーチャートが表示されるのはインスタンス数カラムのみで、増加は右側に赤色で、減少は左側に緑色で描画されます。

ビュー設定ダイアログでは、このバーチャートに絶対変化量を表示するかパーセンテージを表示するかを選択できます。もう一方の値は括弧内に表示されます。この設定はカラムのソート方法も決定します。

最初のデータカラムの測定値はプライマリ測定値と呼ばれ、ビュー設定でデフォルトのインスタンス数からシャローサイズに切り替えることができます。

テーブルのコンテキストメニューを使用すると、同じ比較パラメーターで、選択したクラスに対する他のメモリ比較へショートカットできます。

オブジェクト比較と同様に、CPUホットスポット、プローブホットスポット、および割り当てホットスポットの比較も同様のテーブルに表示されます。

ツリーによる比較

CPU呼び出しツリー、割り当て呼び出しツリー、およびプローブ呼び出しツリーのそれぞれについて、選択したスナップショット間の差分を示す別のツリーを計算できます。通常の呼び出しツリービューとは対照的に、インラインの棒グラフには変化量が表示され、増加は赤色、減少は緑色で示されます。

当面のタスクによっては、両方のスナップショットファイルに存在し、一方のスナップショットファイルから他方のスナップショットファイルへと変化した呼び出しスタックのみを表示する方が作業しやすい場合があります。この動作はビュー設定ダイアログで変更できます。

CPUおよびプローブ呼び出しツリーの比較では、合計時間の代わりに平均時間を比較すると有用な場合があります。これはウィザードの「ビューパラメーター」ステップにあるオプションです。

テレメトリー比較

テレメトリー比較では、同時に2つ以上のスナップショットを比較できます。スナップショットセレクターでスナップショットを選択しない場合、ウィザードはすべてのスナップショットを比較対象とみなします。テレメトリー比較には時間軸がなく、代わりに番号付けされた選択済みスナップショットが順序付きのX軸として表示されます。ツールチップにはスナップショットの完全な名前が含まれます。

この比較では、各スナップショットから1つの数値を抽出します。テレメトリーデータは時間分解能を持つため、抽出には複数の方法があります。ウィザードの「比較タイプ」ステップでは、スナップショット保存時の値を使用するか、最大値を計算するか、選択したブックマークでの値を見つけるかを選択できます。