ReSharper 2026.1 Help

監視

ReSharper は、アプリケーション パフォーマンスをリアルタイムでトラックし、実行時の動作を分析できる統合監視ツールを提供します。 CPU 使用率、メモリ消費量、ガベージコレクションのアクティビティ、環境変数、カウンター、メトリクスなどを表示できます。 Windows では、このツールはバックグラウンドで詳細なパフォーマンスデータを収集し、統合されたパフォーマンスプロファイラを使用して分析することもできます。

デフォルトでは、プロジェクトを実行またはデバッグすると、 監視 ツールウィンドウで監視が自動的に開始されます。

Windows OS 上の監視ツールウィンドウ

サポートされているアプリケーション

  • .NET Core 3.0 以降、.NET 5.0 以降

  • .NET フレームワーク (カウンター、メトリクス、例外に関する情報なし)

  • Mono (カウンター、メトリクス、例外に関する情報なし)

  • Unity (CPU とメモリのチャートのみが利用可能です)

  • C++ (CPU とメモリのチャートのみが利用可能です)

  • Unreal Engine (CPU とメモリのチャートのみが利用可能です)

パフォーマンスタブ

パフォーマンス タブでは、アプリケーションの実行時動作をグラフで視覚化します。 Windows 版では、検出されたパフォーマンス問題の一覧も表示され、統合されたパフォーマンスプロファイラ(dotUltimate ライセンスが必要)を使用して詳細に分析できます。

グラフ

監視チャート

グラフ タブには、アプリケーションの CPU とメモリの使用状況が表示されます。 グラフの上にマウスを移動すると、データポイントの詳細情報が表示されます。

  • CPU チャートには、アプリケーションの CPU 使用率と、 UI フリーズ および パフォーマンスホットスポット の問題が検出された時間間隔が表示されます。

  • GC チャートには、アプリケーション内のガベージコレクション (GC) イベントと、 高い GC 活性 の問題が検出された時間間隔が表示されます。

  • メモリ チャートには、アプリケーションのメモリ使用量が表示されます。

    メモリ使用量の計算方法について

    メモリ チャートには、プロセスの プライベートメモリ (このプロセス専用で、他のプロセスと共有されないメモリ) が表示されます。

    • Windows: このグラフはプロセスの コミット チャージ の値を表示します。 プライベート ページ(たとえスワップアウトされていても)を含み、他のプロセスと共有されているページは除外されるため、他のツールに表示される「resident/working set」より高くなる場合も低くなる場合もあります。 このグラフは GetProcessMemoryInfo を使って PROCESS_MEMORY_COUNTERS_EX.PrivateUsage を取得します。

    さまざまなツールがさまざまなメトリクス (プライベートメモリと常駐 / ワーキングセット) を視覚化するため、ツール間で数値が完全に一致しないのは正常です。

検出された問題

監視。 検出された問題

Windows 環境では、監視ツールがアプリケーション内の様々な問題を自動的に検出します。 検出された問題は、統合されたパフォーマンスプロファイラを使用して詳細に分析できます。

検出された問題の詳細

背景プロファイリング

Windows では、ReSharper は ETW CPU サンプリングを用いて、実行時やデバッグセッション中にバックグラウンドで詳細なパフォーマンスデータを収集します。 このプロセスはパフォーマンスプロファイラのタイムラインプロファイリングに似ていますが、自動的に実行され、オーバーヘッドは最小限です。 収集されるデータには以下が含まれます。

  • メソッド実行時間を含むスタックトレース

  • メソッドアクティビティのタイムライン

  • 割り当てやガベージコレクションなどの実行時イベント

バックグラウンドプロファイリングは通常、アプリケーションのパフォーマンスに 1 – 2% の影響のみをもたらします。 エッジケースでは、オーバーヘッドが最大 10% に達する可能性があります。 パフォーマンスの低下が発生した場合は、 ReSharper | オプション | モニターETW CPU サンプリング チェックボックスをオフにしてください。

統合されたパフォーマンスプロファイラを使用してパフォーマンスデータを分析できます(下記参照)。 なお、データの分析には dotUltimate ライセンスが必要です。

検出された問題 機能もこのバックグラウンドプロファイリングデータによって強化されています。

監視データを分析する

収集したパフォーマンスデータは、統合されたパフォーマンスプロファイラを使用して分析できます(dotUltimate ライセンスが必要です)。

問題を分析する

  1. リスト内の問題をダブルクリックするか、右クリックして 問題を分析する を選択します。

  2. 問題に関する詳細情報は、新しいエディタータブに表示されます。 検出された問題の分析について詳しくは

dotTrace の問題を分析する

  1. リスト内の問題を右クリックし、 発行範囲を選択 を選択します。

  2. グラフ タブの上にある Analyze interval選択した時間範囲を分析する ボタンをクリックします。

  3. 問題発生時刻範囲は、 パフォーマンスプロファイラ ツールウィンドウに開き、コールツリーとイベントデータが表示されます。

dotTrace の時間間隔を分析する

  1. グラフをクリックして、分析する時間間隔を選択します。

  2. グラフ タブの上にある Analyze interval選択した時間範囲を分析する ボタンをクリックします。

  3. 対応する時間範囲が パフォーマンスプロファイラ ツールウィンドウに開き、コールツリーとイベントデータが表示されます。

    選択範囲を分析

dotTrace の全時間範囲を分析

  1. グラフ タブの上にある Analyze all performance data全期間を分析する ボタンをクリックします。

  2. パフォーマンスプロファイラ ツールウィンドウが開き、実行またはデバッグセッション全体のコールツリーとイベントデータが表示されます。

カウンタータブ

カウンター タブには、有効なすべてのカウンターおよびメトリクスプロバイダーのカウンターとその値が表示されます。

  • カウンター

    .NET カウンターは、アプリケーションのパフォーマンスデータを取得する方法の 1 つです。 ほとんどの .NET システムアセンブリは、独自のカウンターセットを提供します。 たとえば、基本 System.Runtime アセンブリには、CPU とメモリの使用状況、特定のヒープでのガベージコレクションの数、ロック競合数、スレッドプールキューの長さなどのカウンターが含まれています。 Microsoft.AspNetCore.Hosting は、サーバーアプリケーションの監視に役立つカウンター (要求率、失敗した要求の数など) を提供します。 さらに、アプリケーションは、 EventCounters を使用して独自のカスタムカウンターを提供することができます。

  • メトリック

    メトリクスは、OpenTelemetry などのさまざまなサードパーティプロバイダーをサポートするアプリケーションデータを収集するためのより現代的な方法です。 .NET アセンブリも独自のメトリクスセットを提供します。 例: Microsoft.AspNetCore.Hosting は、要求の期間と現在のアクティブな要求の数のメトリクスを提供します。 カウンターだけでなく、アプリケーションは独自のカスタムメトリクスを提供できます。

プロバイダーを追加または削除するには、 ReSharper | オプション | モニター | カウンター に移動し、 カウンタープロバイダー または メトリクスプロバイダー でプロバイダーのリストを構成します。 プロバイダーを追加する場合:

  • プロバイダーからのすべてのカウンター / メトリクスを追加するには、その名前を指定します(例: MyProvider

  • プロバイダーから特定のカウンターまたはメトリクスを追加するには、プロバイダー名とカウンターまたはメトリクス名を次のフォーマットで指定します: ProviderName[CounterName1,CounterName2]。 例: OpenTelemetry.Instrumentation.Runtime[process.runtime.dotnet.gc.collections]

「環境」タブ

環境 タブには、アプリケーションの環境変数およびシステムプロパティが表示されます。

監視モード

デフォルトでは、プロジェクトを実行またはデバッグすると自動的に監視が開始されます。 この動作は、 監視 ツールウィンドウ設定の モニタリングを有効化する セレクターで変更できます。

  • デバッグ時または実行時 – プロジェクトを実行またはデバッグすると、監視が自動的に開始されます。

  • デバッグ中 – 監視はプロジェクトをデバッグするときにのみ自動的に開始されます。

  • なし – 監視は無効になります。

プロファイリングデータを取得する

監視ツールで収集されたデータだけでは、アプリケーションのパフォーマンスを分析するには不十分な場合があります。 より詳細な分析を行うには、 監視 ウィンドウのツールバーからプロファイリングデータ (パフォーマンスプロファイリングセッションの開始やメモリスナップショットの取得など) を取得できます。

  • Get stacktraceスタックトレースを収集する – アプリケーションのスタックトレースを取得します。 スタックトレースは スタックトレースエクスプローラー で自動的に開かれます。 これは、予期しない UI フリーズが発生し、潜在的なスレッドロックを調査したい場合などに役立ちます。

  • メモリプロファイリングを開始するメモリスナップショットを取得する – アプリケーションのメモリのスナップショットを即座に取得します。 スナップショットが取得されると、メモリプロファイラツールウィンドウで開きます。

  • サンプリングプロファイリングを開始するサンプリングプロファイリングを開始する | タイムラインプロファイリングを開始するタイムラインプロファイリングを開始する – タイムラインまたはサンプリングプロファイリングタイプを使用してパフォーマンスプロファイリングセッションを開始します。 プロファイリングデータの記録を停止してパフォーマンススナップショットを保存するには、 プロファイリングを停止する ボタンをクリックします。 収集されたスナップショットは、パフォーマンスプロファイラーツールウィンドウで開きます。

2026 年 6 月 12 日