アプリでコードの最適化を設定して構成すると、受け取った分析情報にアクセスして表示できます。
Access コードの最適化
コードの最適化には、次の 2 つのエントリ ポイントからアクセスできます。
コード最適化集約の概要ページ (プレビュー)
コード最適化の概要ページを使用して、 コードの最適化の結果を表示します。 この統合された概要では、複数の Application Insights リソースについて、複数のサブスクリプション間で結果をaccessできます。
フィルター フィールドを検索するか、次のフィルターを設定することで、統合された結果をフィルター処理できます。
| フィルター | 説明 | 既定値 |
|---|---|---|
| 時間の範囲 | コード最適化の結果を表示する時間範囲を選択します。 | 過去 24 時間 |
| 役割 | レポートサービスコンピューターまたはワークロードに割り当てられたロール名。 Application Insights 構成を使用して更新できます。 | すべてのロール |
| サブスクリプション | 分析情報が属するサブスクリプション。 複数を選択できます。 | なし |
| Application Insights | アプリケーションが関連付けられている Application Insights リソース。 複数を選択できます。 | なし |
| 分析情報の種類 | CPU、メモリ、ブロック、例外などの問題の種類。 | すべての種類 |
その後、次のような目的のビューに基づいて、分析情報の結果の列を並べ替えることができます。
- パフォーマンスの問題
- 親メソッドの完全な名前
個々の Application Insights リソース
個々の Application Insights リソースに固有のコード最適化は、そのリソースの左側のメニューからaccessできます。 [調査>パフォーマンス] を選択し、上部のメニューから [コードの最適化] ボタンを選択します。
フィルター フィールドを検索するか、次のフィルターを設定することで、統合された結果をフィルター処理できます。
| フィルター | 説明 | 既定値 |
|---|---|---|
| 時間の範囲 | コード最適化の結果を表示する時間範囲を選択します。 | 過去 24 時間 |
| 役割 | レポートサービスコンピューターまたはワークロードに割り当てられたロール名。 Application Insights 構成を使用して更新できます。 | すべてのロール |
| 分析情報の種類 | CPU、メモリ、ブロック、例外などの問題の種類。 | すべての種類 |
その後、次のような目的のビューに基づいて、分析情報の結果の列を並べ替えることができます。
- パフォーマンスの問題
- その問題を含むプロファイルの数
- 親メソッドの完全な名前
推定メモリと CPU のピーク使用率の割合を解釈する
推定 CPU とメモリは、アプリケーション内のアクティビティの量に基づいて判別されます。 メモリと CPU の割合に加えて、コード最適化では以下も含めます。
- 実際の割り当てサイズ (バイト単位)
- その呼び出しで行われた割り当て済みの種類の内訳
記憶
メモリの場合、この数値はトレースで行われたすべての割り当てに対する割合です。 たとえば、問題に 24% メモリが必要な場合は、その呼び出しで 24% の割り当てを費やしました。
CPU
CPU の場合、その割合は、マシン内の CPU の数 (4 コア、8 コアなど) とトレース時間に基づいています。 たとえば、トレースの長さが 10 秒で、CPU が 4 つあり、合計で 40 秒の CPU 時間があるとします。 分析情報によれば、コード行は CPU の 5% を使用しているため、40秒のうち 5% を使用していることになります。つまり、2秒を使用しているということです。
ブロッキング
I/O 操作、ロック、スリープなどのリソースを待機するためにスレッドが時間を費やした場所を示します。 ブロック時間は秒単位で報告され、すべてのスレッドとコアで集計されるため、CPU メトリックと同じ集計ルールに従って、合計がキャプチャ期間を超える可能性があります。
次のような待機時間のボトルネックを特定するには、このメトリックを使用します。
- スレッド間のロックの競合
- 同期 I/O 操作
- 非同期操作の呼び出しをブロックする
例外
例外分析情報は、スナップショット デバッガーによって収集されたスナップショットから抽出されます。 アプリでスナップショット デバッガーが有効になっていて、スナップショットが収集されている場合は、コードの最適化で分析情報を抽出するために自動的に処理されます。
分析情報の表示
コード最適化の結果を並べ替えてフィルター処理した後、各分析情報を選択して、次の詳細をウィンドウに表示できます。
- パフォーマンス バグの分析情報の詳細な説明。
- 完全な呼び出し履歴。
- パフォーマンスの問題を修正する方法に関する推奨事項。
- 問題の傾向の影響としきい値のタイムライン。
洞察 力
[ 分析情報 ] タブには、次の情報が表示されます。
- 選択した問題の簡単な説明。
- リソース メモリまたは CPU 使用率の現在の状態。
- 問題を修正するための AI によって生成された推奨事項。
注
分析情報が表示されない場合は、コード最適化サービスがコードのパフォーマンスのボトルネックに気付かなかった可能性があります。 もう一度確認して、分析情報が表示されるかどうかを確認します。
コール スタック
分析情報の詳細ウィンドウの [呼び出し履歴 ] 見出しの下で、次のことができます。
- [展開] を選択すると、パフォーマンスの問題に関する完全な呼び出し履歴が表示されます。
- [ コピー] を選択して呼び出し履歴をコピーします。
タイムライン
詳細ウィンドウの [ タイムライン] で、特定のパフォーマンスの問題の影響としきい値のタイムラインを示すグラフを表示することもできます。 結果は、設定したフィルターによって異なります。 たとえば、過去 24 時間に見られるメモリ "非効率的な String.SubString()" パフォーマンスの問題の分析情報は次のようになります。