問題検出
Windows では、 モニタリング ツールはアプリケーションの様々な種類の実行時パフォーマンスの問題を自動的に検出できます。 デバッグ時または通常実行時に実行され、UI のフリーズ、長時間実行されるデータベースコマンド、ASP.NET Core リクエストの遅延といった潜在的な問題を特定します。
検出された問題は、 検出された問題 セクションの モニタリング ツールウィンドウに表示されます。ここで問題を確認したり、関連するコードへ移動したり、統合された dotTrace プロファイラー を使って原因となったメソッドを分析したりできます。

dotUltimate ライセンス要件
問題検出はすべてのユーザーが利用できます。 ただし、dotTrace での詳細な問題分析には、 dotUltimate または All Products Pack のライセンスが必要です。
ライセンスがない場合、問題は問題タイプとメトリクス値のみで報告されます(メソッド名や型名は含まれません)。

問題の種類とデフォルトのしきい値
モニタリングでは、複数の種類の問題が検出されます。 各問題の種類には設定可能なしきい値があります。 メトリクスがしきい値を超えると、 モニタリング ツールウィンドウに問題が報告されます。 これらのしきい値は でカスタマイズできます。
基本的なパフォーマンスの問題
パフォーマンスホットスポット – 1 つ以上のユーザーメソッドが総実行時間の大部分を消費した時間間隔。 デフォルトのしきい値: 500 ミリ秒。
UI フリーズ – UI が指定されたしきい値を超えて応答しなかった時間間隔(ウィンドウメッセージが送信または処理されなかった時間)。 デフォルトのしきい値: 500 ミリ秒。
高い GC 活性 – 総実行時間のうち、指定された割合がガベージコレクションに費やされた時間間隔。 GC アクティビティが著しく高い場合、アプリケーションにおけるメモリ不足または過剰なメモリ割り当てを示している可能性があります。 デフォルトのしきい値: 20%。
データベースの問題
遅い DB コマンド – 実行時間がしきい値を超えるデータベースコマンド。 デフォルトのしきい値: 1000 ミリ秒。
過剰な DB コマンド – 同じデータベースコマンド(例: N+1 クエリパターン)の繰り返し実行。 デフォルトのしきい値: 100 コマンド。
大きい DB 結果セット – しきい値を超えるレコードを返すデータベースコマンド。 デフォルトのしきい値: 1000 レコード。
過剰な DB 接続 – 同時データベース接続を過剰に開くコード。 デフォルトのしきい値: 50 接続。
ASP.NET Core の問題
遅い MVC アクション – 実行時間がしきい値を超えたコントローラーアクション。 デフォルトのしきい値: 1000 ミリ秒。
遅い Razor ページハンドラー – 長時間実行される Razor ページハンドラーメソッド(例:
OnGet、OnPost)。 デフォルトのしきい値: 1000 ミリ秒。遅い Razor ビューコンポーネント – ビューコンポーネント内の遅い
Invoke()またはInvokeAsync()メソッド。 デフォルトのしきい値: 1000 ミリ秒。
検出された問題を分析する
モニタリング ツールを使用すると、検出された問題をより詳細に分析できます。 問題を右クリックすると、以下の操作が可能です。
問題を分析する- エディターで問題の詳細を表示します。

発行範囲を選択 – 監視タイムライン上で問題発生時の時間範囲を選択します。 範囲を選択したら、 グラフ タブ上部の
選択した時間範囲を分析する ボタンをクリックします。 これにより、 dotTrace ツールウィンドウに問題発生時の時間範囲が開き、呼び出しツリーとイベントデータを確認できます。 dotTrace を使用してデータを分析する方法を学ぶ{ メソッド名 } に移動 – 問題の原因となったメソッドに進みます。
問題検出を構成する
モニタリング は、イベントのメトリクスが設定されたしきい値を超えると、そのイベントを問題とみなします。 しきい値を変更したり、特定の問題タイプを無効にしたりすることができます。
を開きます。
チェックボックスを使用して、個々の問題タイプを有効または無効にします。
プロジェクトのパフォーマンスゴールに応じてしきい値を調整します。
ミュートの問題
モニタリング が、誤検知、制御不能なコード、調査するには軽微すぎるケースなど、実際には問題ではないと判断した問題を検知した場合、その問題をミュートすることができます。 問題をミュートすると、 モニタリング は、対応するコードを今後の実行から分析対象から除外するように指示するフィルターを追加します。
このようなフィルターは、設定で手動で作成することも、 検出された問題 リストから直接作成することもできます。
検出された問題 リストから問題をミュートするには:
検出された問題 リストで、問題を右クリックします。
問題を却下 を選択します。 これにより、メソッド名によるフィルターが作成されます。
作成されたフィルターは、 ページの 次のコードは分析しない セクションで表示または変更できます。
フィルターを手動で作成または管理するには:
を開きます。
次のコードは分析しない セクションでは、プロセス、モジュール、クラス、メソッドごとにフィルターを追加または削除できます。 また、既存のフィルターを削除して、以前にミュートした問題を「ミュート解除」することもできます。