ランタイム プロファイリング
Note
この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含めて、.NET の新しい実装には適用されません。
プロファイリングは、任意の開発シナリオまたは配置シナリオでパフォーマンス データを収集する方法の 1 つです。 このセクションは、アプリケーションのパフォーマンスに関する情報の収集を必要とする開発者およびシステム管理者を対象にしています。
パフォーマンス モニター (Perfmon.exe) を使用したパフォーマンスの追跡
パフォーマンス モニターは、.NET Framework アプリケーションをプロファイリングする場合に最も使いやすいツールです。 パフォーマンス モニターは、共通言語ランタイムおよび Windows SDK と共にインストールされる .NET Framework パフォーマンス カウンター内のデータをグラフィカルに表示します。 これらのカウンターを使用することにより、メモリ管理から Just-In-Time (JIT) コンパイラのパフォーマンスまで、あらゆる情報を監視できます。 .NET パフォーマンス カウンターは、アプリケーションが使用するリソースに関する情報を提供します。この情報は、アプリケーションのパフォーマンスを判断するための間接的な指標となります。 これらのカウンターは、アプリケーション内部の動作状況を把握するために使用します。
perfmon.exe を Windows Vista 以降のバージョンで実行するには
コマンド プロンプトで、「 perfmon」と入力します。 [パフォーマンス モニター] コンソールが表示されます。
[監視ツール] フォルダーで、 [パフォーマンス モニター]をクリックします。
パフォーマンス モニターのツールバーで、 [追加] アイコン (正符号) をクリックします (表示されている場合)。 表示されていない場合は、モニター ウィンドウで右クリックし、 [カウンターの追加] オプションを選択します。
[接続の追加] ダイアログ ボックスが表示されます。 [使用可能なカウンター] リスト ボックスに、使用可能なパフォーマンス オブジェクトが表示されます。 .NET Framework アプリケーション用には、さまざまな定義済みのオブジェクトがあります。これには、メモリ管理 (.NET CLR メモリ)、相互運用性 (.NET CLR の相互運用性)、例外処理 (.NET CLR 例外)、およびマルチスレッド (.NET CLR LocksAndThreads) が含まれます。 各パフォーマンス オブジェクトには、個々 のパフォーマンス カウンターが多数含まれています。 パフォーマンス モニターで使用可能なパフォーマンス カウンターの一覧は、「 Performance Countersと共にインストールされる .NET Framework パフォーマンス カウンター内のデータをグラフィカルに表示します。
パフォーマンス オブジェクトの名前の横にあるチェック ボックスをオンにすると、サポートされている個々のパフォーマンス カウンターの一覧が表示されます。
表示するパフォーマンス カウンターをクリックします。
[選択したオブジェクトのインスタンス] リスト ボックスで、[<すべてのインスタンス>] をクリックして、共通言語ランタイムのパフォーマンス カウンターをグローバルに (つまり、システム全体で) 監視するように指定します。
または
[選択したオブジェクトのインスタンス] リスト ボックスで、アプリケーション名をクリックして、そのアプリケーションのパフォーマンス カウンターを監視します。
複数のバージョンのランタイムを区別する必要がある場合、または同じ名前を持つ複数のアプリケーション間のあいまいさを解消する必要がある場合は、レジストリ キーも変更する必要があります。 詳細については、「 Performance Counters and In-Process Side-By-Side Applications」を参照してください。
Note
パフォーマンス コンソールの実行中に新しいパフォーマンス カウンターがインストールされた場合は、新しいカウンターが表示されるように、パフォーマンス コンソールを停止して再起動してください。
特定のゾーンまたはリモート共有に存在するアセンブリをプロファイリングする場合は、リモート アセンブリがパフォーマンス カウンターを実行するコンピューターに対して完全な信頼関係を持っていることを確認してください。 アセンブリが十分な信頼関係を持っていない場合、パフォーマンス カウンターは機能しません。 さまざまなゾーンへの信頼の付与については、「Caspol.exe (コード アクセス セキュリティ ポリシー ツール)」を参照してください。
Note
.NET Framework 4 がインストールされているシステムでは、パフォーマンス モニターで、.NET Framework 1.1 を使用して開発されたアプリケーションについて、.NET CLR データや .NET CLR ネットワークなどの一部のカテゴリでパフォーマンス カウンターのデータが表示されない場合があります。 このような場合、<forcePerformanceCounterUniqueSharedMemoryReads> 要素をアプリケーションの構成ファイルに追加することで、このデータを表示するようにパフォーマンス モニターを構成できます。
プログラムを使用したパフォーマンス カウンターの読み取りと作成
.NET Framework には、パフォーマンス コンソールで利用できるものと同じパフォーマンス情報にコードからアクセスするのに使用するクラスが用意されています。 また、これらのクラスを使用すると、カスタム パフォーマンス カウンターを作成できます。 .NET Framework に用意されているパフォーマンス監視クラスの一部について、次の表で説明します。
クラス | 説明 |
---|---|
System.Diagnostics.PerformanceCounter | Windows パフォーマンス カウンター コンポーネントを表します。 既存の定義済みカウンターやカスタム カウンターを読み取ったり、カスタム カウンターにパフォーマンス データを書き込むには、このクラスを使用します。 |
System.Diagnostics.PerformanceCounterCategory | コンピューター上のカウンターおよびカウンター カテゴリと対話するためのいくつかのメソッドを提供します。 |
System.Diagnostics.PerformanceCounterInstaller | PerformanceCounter コンポーネントのインストーラーを指定します。 |
System.Diagnostics.PerformanceCounterType | NextValue の PerformanceCounter メソッドを計算する数式を指定します。 |
関連項目
.NET