JetBrains Rider 2024.1 ヘルプ

モニター

JetBrains Rider は、CPU やメモリの使用状況、カウンター、環境変数など、アプリケーションのさまざまな側面を表示できる統合監視ツールを提供します。デフォルトでは、プロジェクトを実行またはデバッグするたびに、JetBrains Rider はリアルタイムデータを含むモニターツールウィンドウを表示します。このウィンドウを使用して、アプリケーションのパフォーマンスを追跡し、特定の瞬間の実行環境の状態を分析します。

Monitoring tool window

サポートされている OS とフレームワーク

  • OS: Windows、Linux、macOS

  • フレームワーク: .NET Core 3.0 以降、.NET 5.0 以降

リアルタイムデータ

モニターツールウィンドウは、さまざまなリアルタイムデータを表示する 3 つのタブ ( グラフカウンター環境 ) で構成されています。

グラフ

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

  • CPU チャートには、アプリケーションの CPU 使用率と実行中に発生した例外が表示されます。

    Monitoring CPU chart
  • メモリチャートには、アプリケーションのメモリ使用量が表示されます。チャートの上にマウスを移動すると、メモリヒープのサイズに関する詳細情報が表示されます。ガベージコレクションイベントもチャートに表示されます。

    Monitoring Memory chart

カウンター

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

  • カウンター

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

  • メトリック

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

プロバイダーを追加または削除するには、設定 | ビルド、実行、デプロイ | 動的プログラム分析 | モニターに移動し、カウンタープロバイダーまたはメトリックプロバイダーでプロバイダーのリストを構成します。プロバイダーを追加する場合:

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

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

カウンターとメトリックの値を更新する頻度 (秒単位) を定義するには、設定 | ビルド、実行、デプロイ | 動的プログラム分析 | モニターリフレッシュ間隔パラメーターを使用します。

環境

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

監視モード

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

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

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

  • オフ – 監視は無効です。

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

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

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

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

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

関連ページ:

プロファイリング結果を分析する

プロファイリングセッションが終了すると、分析ドキュメントウィンドウは次のようになります。dotMemory を使用すると、次のデータを分析できます。メモリ割り当てデータ (1) メモリ割り当て分析を使用すると、アプリケーションの実行中にメモリ内のオブジェクトの割り当てを追跡できます。これにより、作成されたオブジェクトのタイプとその作成を担当したメソッドを識別できます。本質的に、これは「アプリケーションのどこにどのようにメモリが割り当てられているのか ? 」という質問に答えます。分析ドキュメントウィ...

アプリケーションのプロファイル

プロファイルするアプリケーションの種類に関係なく、ワークフローは常に同じであり、次の内容で構成されます。使用するプロファイリング構成を決定する、プロファイリングセッションを実行し、スナップショットを取得する、収集したスナップショットを分析する、セッションを実行してスナップショットを取得する:セッションを開始してスナップショットを取得するツールバーで、プロファイルを作成する実行構成を選択します。実行 | スイッチプロファイリング設定メニューで、プロファイリング構成を選択します。サンプリング、トレ...

プロファイリング結果を分析する

アプリケーションの実行が遅すぎると、問題を特定して実行するアクションを理解することが困難になる可能性があります。アプリケーションのプロファイリングとパフォーマンススナップショットの取得後の次のステップは、スナップショットを開いてデータを分析することです。通常、パフォーマンス分析の最終的なゴールは、パフォーマンスの問題を引き起こす特定の方法を特定することです。このタスクの実行を支援するために、dotTrace プロファイラーウィンドウには、呼び出しツリーとホットスポットの 2 つのビューがあります...

ホット再ロードで実行中のコードを編集する

デバッグ時に変更を加える:中断されたプログラムのコードを編集し、セッションを再開せずにデバッグを続行できます。影響を受けるプロジェクトはバックグラウンドで再コンパイルされ、デバッガーと同期されます。この動作はデフォルトで有効になっていますが、JetBrains Rider 設定のページのデバッグ時にホット再ロードを有効にするチェックボックスをオフにすることで無効にできます。ホット再ロードがデバッグに対して無効になっている場合、編集を行うことはできますが、それらはデバッガーと同期されません。ホ

ユニットテスト

JetBrains Rider は、単体テストの検出と実行、デバッグ、カバー、プロファイルに役立ちます。次の単体テストフレームワークがサポートされています。NUnit — JetBrains Rider インストールには、それぞれ 2.7.1 までのバージョンと 3.15.5 までのバージョンをサポートする 2 つのバンドルされたテストランナーが含まれています。4.1.0 までの他のバージョンもサポートされており、対応する NuGet パッケージがプロジェクトにインストールされている場合に使用され...