スナップショットの比較
現在のアプリケーションのランタイム特性を以前のバージョンと比較することは、パフォーマンスの退行を防ぐための一般的な品質保証技術です。また、単一のプロファイリングセッション内でパフォーマンス問題を解決する際にも役立ちます。異なるユースケースを比較して、なぜ一方が他方よりも遅いのかを見つけることができます。どちらの場合も、関心のある記録データを含むスナップショットを保存し、セッション→新しいウィンドウでスナップショットを比較メニューから呼び出すか、スタートセンターのスナップショットを開くタブで複数のスナップショットを比較ボタンをクリックして、JProfilerのスナップショット比較機能を使用します。
スナップショットの選択
比較は、別のトップレベルウィンドウで作成および表示されます。まず、スナップショットセレクタにいくつかのスナップショットを追加します。その後、関心のあるスナップショットを選択し、比較ツールバーのボタンをクリックすることで、リストされたスナップショットのうち2つ以上から比較を作成できます。リスト内のスナップショットファイルの順序は重要です。すべての比較は、リストの下の方にあるスナップショットが後の時間に記録されたと仮定します。スナップショットを手動で配置する以外に、名前や作成時間でソートすることもできます。
JProfilerのメインウィンドウのビューとは異なり、比較ビューには固定されたビューのパラメータがあり、上部に表示されます。これにより、パラメータをその場で調整するドロップダウンリストはありません。すべての比較は、比較のためのパラメータを収集するウィザードを表示し、同じパラメータで複数回同じ比較を実行できます。ウィザードは以前の呼び出しからパラメータを記憶しているため、複数のスナップショットセットを比較する場合、設定を繰り返す必要はありません。いつでも完了ボタンでウィザードをショートカットするか、インデックスのステップをクリックして別のステップにジャンプできます。
比較がアクティブな場合、分析されたスナップショットは番号のプレフィックスと共に表示されます。2つのスナップショットで動作する比較では、表示される差異はスナップショット2の測定値からスナップショット1の測定値を引いたものです。
CPUの比較では、同じスナップショットを最初と2番目のスナップショットとして使用し、ウィザードで異なるスレッドやスレッドグループを選択できます。
テーブルによる比較
最も簡単な比較は「オブジェクト」メモリ比較です。「すべてのオブジェクト」、「記録されたオブジェクト」、またはヒープウォーカーの「クラス」ビューからデータを比較できます。比較の列はインスタンス数とサイズの差異を示しますが、インスタンス数列のみが双方向の棒グラフを表示し、増加は赤で右に、減少は緑で左に描かれます。
ビュー設定ダイアログで、この棒グラフが絶対変化を表示するかパーセンテージを表示するかを選択できます。他の値は括弧内に表示されます。この設定は、列がどのようにソートされるかも決定します。
最初のデータ列の測定値はプライマリメジャーと呼ばれ、ビュー設定でデフォルトのインスタンス数からシャローサイズに切り替えることができます。
テーブルのコンテキストメニューから、同じ比較パラメータで選択されたクラスの他のメモリ比較にショートカットできます。
オブジェクト比較と同様に、CPUホットスポット、プローブホットスポット、割り当てホットスポットの比較も同様のテーブルで表示されます。
ツリーによる比較
CPU呼び出しツリー、割り当て呼び出しツリー、プローブ呼び出しツリーのそれぞれについて、選択されたスナップショット間の差異を示す別のツリーを計算できます。通常の呼び出しツリービューとは対照的に、インラインバー図は今や変化を表示し、増加は赤、減少は緑で示されます。
手元のタスクに応じて、両方のスナップショットファイルに存在し、一方のスナップショットファイルから他方に変化した呼び出しスタックのみを表示する方が簡単になる場合があります。この動作はビュー設定ダイアログで変更できます。
CPUおよびプローブ呼び出しツリーの比較では、合計時間ではなく平均時間を比較することが興味深いかもしれません。これはウィザードの「ビューのパラメータ」ステップで選択できるオプションです。
テレメトリー比較
テレメトリー比較では、同時に2つ以上のスナップショットを比較できます。スナップショットセレクタでスナップショットを選択しない場合、ウィザードはすべてのスナップショットを比較するものと仮定します。テレメトリー比較には時間軸がなく、番号付きの選択されたスナップショットが順序付きのx軸として表示されます。ツールチップにはスナップショットの完全な名前が含まれています。
比較は各スナップショットから1つの数値を抽出します。テレメトリーデータは時間解決されているため、これを行う方法は複数あります。ウィザードの「比較タイプ」ステップでは、スナップショットが保存されたときの値を使用するか、最大値を計算するか、選択されたブックマークでの値を見つけるオプションを提供します。