プロファイリング ツールの CPU カウンターと Windows カウンター
Visual Studio 2012 プロファイラーを使用すると、オペレーティング システムで生成されたパフォーマンス データ (Windows カウンター) 、およびプロセッサ ユニットで生成されたパフォーマンス データ (CPU カウンター) を収集できます。
要件
- Visual Studio Ultimate, Visual Studio Premium, Visual Studio Professional
[!メモ]
Windows 8 のセキュリティは強化された機能および Windows Server 2012 は、Visual Studio のプロファイラーがこれらのプラットフォームのデータを収集する方法に大きな変更されました。Windows ストア apps は、新しいコレクション手法が必要です。「Windows 8 および Windows Server 2012 アプリケーションのプロファイリング」を参照してください。
[Windows カウンター]
Windows カウンターは、オペレーティング システム、アプリケーション、サービス、またはドライバーのパフォーマンスに関する情報を提供する、Windows 診断インフラストラクチャの一部です。Windows カウンターは現在のコンピューターの構成に依存し、他のコンピューターでは使用できない場合があります。Windows パフォーマンス カウンターはプロファイル マークとしてプロファイル データ ファイルに収集され、ビューやレポートのフィルターに使用できます。
[CPU カウンター]
CPU カウンターは、ハードウェア関連のイベントのカウントを格納するコンピューターの CPU の機能です。CPU カウンター データをインストルメンテーションによるプロファイル方法を使用して収集すると、集められたデータは関数やモジュールのデータに追加されます。インストルメンテーション方式を使用して、複数の CPU カウンターを収集できます。サンプリング メソッドを使用する場合は、カウンターを 1 つ選択して、サンプル対象のイベントとして使用します。
パフォーマンス カウンターは CPU に固有です。CPU のモデルとバージョンによって、同じパフォーマンス カウンターを有効にするための構成設定が大きく異なる場合があります。Visual Studio 2012 プロファイラーの汎用性のあるイベントを使用すると、共通するパフォーマンス カウンターの一部を特定のプロセッサから分離し、汎用的なパフォーマンス イベントを収集またはサンプリングすることができます。
プロファイラーの使用時に、L2 キャッシュ ミスなどの特定のイベントをカウントする場合、そのイベント送信元に基づいてパフォーマンス セッションを作成できます。これは、L2 キャッシュ搭載の CPU で実行できます。パフォーマンス セッションは、変更せずに、プラットフォーム間を移動できます。
Visual Studio のプロファイラーは、特定のプラットフォームで特定のイベントを引き続きサポートします。たとえば、Pentium 4 プラットフォームの開発者が NetBurst アーキテクチャ固有のイベントをカウントする場合があります。このイベントは汎用性がありませんが、開発者は、特定のプラットフォーム上の特定のパフォーマンス セッションに対して引き続き使用できます。
汎用性のあるイベントとプラットフォーム イベント
汎用性のあるイベントとは、特定のプロセッサに限定されない CPU カウンターのグループです。他のすべての CPU カウンターはプラットフォーム イベントと呼ばれ、プラットフォームによってはサポートされない場合もあります。
汎用性のあるイベントとプラットフォーム イベントの両方のカウンターは .XML ファイルで定義されています。ここでは、カウンターに関連する特定の値が指定されています。たとえば、Intel CPU と AMD CPU のデータは異なるため、各 CPU のための複数のファイルがあります。Visual Studio 2008 プロファイラーは、この情報を使用して、パフォーマンスの測定に適したカウンター (汎用性のあるカウンターとプラットフォーム カウンターの両方) をユーザーに提供します。
汎用性のあるイベント
汎用性のあるイベントには、次のイベントが含まれます。
一般的なイベント
イベント名 |
イベントの説明 |
---|---|
Instructions Retired |
イベントが完了するまでに実行された命令数を表します。 |
Non Halted Cycles |
I/O 待ち状態など、プロセッサが停止されていないサイクルのみを表します。 |
フロントエンド イベント
イベント名 |
イベントの説明 |
---|---|
ITLB Misses |
ミスになった ITLB (Instruction Translation Look-aside Buffer) のルックアップ数を表します。 |
分岐イベント
イベント名 |
イベントの説明 |
---|---|
Branches Retired |
イベントが完了するまでに実行された分岐命令数を表します。 |
Mis-predicted Branches |
プロセッサが誤ったパスを予測したことによって発生した分岐予測ミスを表します。プロセッサがすべての作業を破棄し、正しいパスで再実行する必要があるため、分岐予測ミスはパフォーマンスに影響を与えます。 |
メモリ イベント
イベント名 |
イベントの説明 |
---|---|
L2 Cache Read Misses |
2 次キャッシュの読み取りミスの数を表します。 |
L2 Cache Read References |
2 次キャッシュの読み取りの参照数を表します。ロード ミスと RFO ミス、およびヒットが含まれます。 |
使用できるカウンターの表示
コマンド プロンプト ウィンドウの Visual Studio IDE で使用できる CPU カウンターを一覧表示できます。
Visual Studio UI
Visual Studio IDE でコンピューターで使用できるカウンターを一覧表示するには、パフォーマンス エクスプローラーで開いているプロファイラーのパフォーマンス セッションが必要です。
現在のプラットフォームでサポートされているすべての CPU カウンターの一覧を表示するには
パフォーマンス エクスプローラーで、パフォーマンス セッションを右クリックし、[プロパティ] をクリックします。
次のいずれかの操作を行います。
[サンプリング] をクリックし、[サンプル] イベント リストから [パフォーマンス カウンター] を選択します。CPU カウンターが [使用可能なパフォーマンス カウンター] に一覧表示されます。
前の例の構成に戻るメモ クリック [キャンセル]。
または
[CPU カウンター] を選択し、[CPU カウンターの収集] を選択します。CPU カウンターが [使用可能なカウンター] に一覧表示されます。
前のオブジェクトのコレクションの構成に戻るメモ の をクリック [キャンセル]。
現在のプラットフォームでサポートされているすべての Windows カウンターの一覧を表示するには
パフォーマンス エクスプローラーで、パフォーマンス セッションを右クリックし、[プロパティ] をクリックします。
[Windows カウンター] をクリックします。
[Windows カウンターの収集] を選択します。
[カウンター カテゴリ] の一覧から、カウンター グループを選択します。選択したグループの Windows カウンターが、リスト ボックスに表示されます。
前のオブジェクトのコレクションの構成に戻るメモ: の をクリック [キャンセル]。
[コマンド ライン]
VSPerfCmd コマンド ライン ツールを使用すると、コンピューターで使用できる CPU カウンターを、コマンド ラインから一覧表示できます。
現在のプラットフォームでサポートされている CPU カウンターを一覧表示するには
コマンド プロンプト ウィンドウを開きます。
型
<Visual Studio Performance Tools Directory>\VSPerfCmd /querycounters
ここで <Visual Studio Performance Tools Directory> は、Visual Studio インストールに含まれるパフォーマンス ツールのディレクトリのパスです。通常は、次のパスになります。
C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Performance Tools
参照
処理手順
方法: インストルメンテーション方式を使用して CPU カウンター データを収集する