テレメトリー
プロファイリングの一環として、時間経過に伴うスカラー測定値を監視することがあります。例えば、使用されたヒープサイズです。 JProfilerでは、このようなグラフをテレメトリーと呼びます。テレメトリーを観察することで、プロファイルされたソフトウェアの理解が深まり、 重要なイベントを異なる測定値で関連付けることができ、予期しない動作に気付いた場合にはJProfilerの他のビューでより深い分析を行うことができます。
標準テレメトリー
JProfiler UIの「テレメトリー」セクションでは、デフォルトでいくつかのテレメトリーが記録されます。 インタラクティブセッションでは、常に有効です。特定のデータタイプが記録される必要があるテレメトリーもあります。 その場合、テレメトリーに記録アクションが表示されます。
同じ時間軸で複数のテレメトリーを比較するために、概要には複数の小規模なテレメトリーが上下に表示され、行の高さを設定できます。 テレメトリーのタイトルをクリックすると、完全なテレメトリービューがアクティブになります。概要でのテレメトリーのデフォルト順序は 必ずしも適切ではないかもしれません。例えば、選択したテレメトリーを並べて関連付けたい場合です。その場合、ドラッグ&ドロップで 概要で順序を変更できます。
完全なビューには現在の値を示す凡例が表示され、概要に表示されている以上のオプションがある場合があります。 例えば、「メモリ」テレメトリーでは、単一のメモリプールを選択できます。
JProfilerには、JVMや重要なフレームワークの高レベルシステムからイベントを記録する多くのプローブがあります。
プローブには対応するプローブビューに表示されるテレメトリーがあります。これらのテレメトリーをシステムテレメトリーと比較するために、
選択したプローブテレメトリーをトップレベルのテレメトリーセクションに追加できます。ツールバーから
追加された各プローブテレメトリーはテレメトリーセクションに独自のビューを持ち、概要にも表示されます。
プローブテレメトリーが追加されると、プローブデータが記録されている場合にのみデータが表示されます。そうでない場合、テレメトリーの説明には 記録を開始するためのインラインボタンが含まれています。
プローブテレメトリーのコンテキストメニューには、記録アクションと対応するプローブビューを表示するアクションが含まれています。
プローブビューと同様に、記録されたオブジェクトのVMテレメトリーはメモリ記録に依存し、記録ボタンと同様のコンテキストメニューを持っています。
最後に、他のビューで選択されたスカラー値を監視する「トラッキング」テレメトリーがあります。 例えば、クラス・トラッカービューでは、クラスを選択してそのインスタンス数を時間と共に監視できます。 また、各プローブには選択されたホットスポットや制御オブジェクトを監視する「トラッカー」ビューがあります。
ブックマーク
JProfilerはすべてのテレメトリーに表示されるブックマークのリストを維持しています。インタラクティブセッションでは、 ブックマークを追加ツールバーボタンをクリックするか、コンテキストメニューのここにブックマークを追加 機能を使用して、現在の時間にブックマークを追加できます。
ブックマークは手動で作成するだけでなく、特定の記録の開始と終了を示すために記録アクションによって自動的に追加されます。 トリガーアクションやコントローラAPIを使用して、プログラムでブックマークを追加できます。
ブックマークには色、線のスタイル、ツールチップに表示される名前があります。既存のブックマークを編集してこれらのプロパティを変更できます。
テレメトリーで複数のブックマークを右クリックするのが不便な場合は、 プロファイリング→ブックマークを編集アクションをメニューから使用してブックマークのリストを取得できます。 ここでは、ブックマークをHTMLまたはCSVにエクスポートすることもできます。
カスタムテレメトリー
独自のテレメトリーを追加する方法は2つあります。JProfiler UIでスクリプトを書いて数値を提供するか、 数値のMBean属性を選択するかです。
カスタムテレメトリーを追加するには、「テレメトリー」セクションに表示されるテレメトリーを設定ツールバーボタンをクリックします。 スクリプトテレメトリーでは、現在のJProfilerセッションのクラスパスに設定されているすべてのクラスにアクセスできます。 値が直接利用できない場合は、アプリケーションに静的メソッドを追加し、このスクリプトで呼び出すことができます。
上記の例は、プラットフォームMBeanへの呼び出しを示しています。MBeanのスカラー値をグラフ化するには、MBeanテレメトリーを使用する方が便利です。 ここでは、MBeanブラウザを使用して適切な属性を選択できます。属性値は数値でなければなりません。
複数のテレメトリーラインを1つのテレメトリーにまとめることができます。そのため、設定は2つの部分に分かれています:テレメトリー自体とテレメトリーラインです。 テレメトリーラインでは、データソースとラインキャプションを編集するだけで、テレメトリーでは単位、スケール、スタッキングを設定できます。 これらはすべて含まれるラインに適用されます。
スタックされたテレメトリーでは、単一のテレメトリーラインが加算され、エリアグラフを表示できます。スケールファクターは、値をサポートされている単位に変換するのに役立ちます。 例えば、データソースがkBを報告する場合、問題はJProfilerに一致する「kB」単位がないことです。スケールファクターを-3に設定すると、値はバイトに変換され、 テレメトリーの単位として「バイト」を選択することで、JProfilerは自動的に適切な集計単位をテレメトリーに表示します。
カスタムテレメトリーは「テレメトリー」セクションの最後に、設定された順序で追加されます。 それらを並べ替えるには、概要で目的の位置にドラッグします。
オーバーヘッドの考慮事項
一見すると、テレメトリーは時間と共にメモリを線形に消費するように見えるかもしれません。しかし、JProfilerは古い値を統合し、 テレメトリーごとに消費されるメモリの総量を制限するために徐々に粗粒化します。
テレメトリーのCPUオーバーヘッドは、値が1秒に1回しかポーリングされないという事実によって制限されています。 標準テレメトリーでは、このデータ収集に追加のオーバーヘッドはありません。 カスタムテレメトリーでは、オーバーヘッドは基礎となるスクリプトまたはMBeanによって決まります。