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