Share via


パフォーマンス カウンターの新機能

このセクションでは、各リリースのパフォーマンス カウンターに追加された新機能について説明します。

Windows 10 20H1

レジストリからパフォーマンス データを直接読み取る場合は、メタデータのみのコレクションを実行して、使用可能なパフォーマンス オブジェクトとカウンターの一覧を作成するときに不要な作業を回避できるようになりました。 クエリの代わりに Global を使用MetadataGlobalすると、メタデータが有効なすべてのプロバイダー DLL によってデータ収集手順がスキップされ、多くのプロセスまたはスレッドを持つシステムでのクエリ パフォーマンスが向上する可能性があります。 メタデータが有効になっていないプロバイダー DLL は、以前と同様に機能し続けます。

パフォーマンス DLL を使用してパフォーマンス データを提供する場合は、不要なデータ収集を回避するために、メタデータのみの収集のサポートを実装できます。 に応答MetadataGlobalするように関数をCollect更新し、MetadataCostlyメタデータのみを使用してクエリを実行し (または をNumInstances使用PERF_METADATA_MULTIPLE_INSTANCESPERF_METADATA_NO_INSTANCESし、応答からすべてのPERF_INSTANCE_DEFINITIONブロックを省略します)、値が 1 のレジストリ値REG_DWORDをサービスのPerformanceサブキーに追加Collect Supports Metadataします。

Windows 7 と Windows Server 2008 R2

CTRPP ツールは、コード生成を改善および簡略化するために変更されました。 これで、このツールはヘッダーとリソース ファイルのみを生成するようになりました。 古いコード生成動作 (推奨されない) を使用する場合は、新しい -legacy 引数を使用できます。

  • ヘッダー ファイルとリソース ファイルの名前と-rc場所をそれぞれ指定する新しい-o引数と引数を指定する必要があります。
  • オプションの new -prefix 引数を使用して、生成されたヘッダー ファイルで定義されているグローバル変数と関数の先頭に追加する文字列を指定できます。
  • カウンター マニフェストを更新する必要がある場合、新しいコード生成を使用すると、コールバックが生成されたコードに含まれなくなったため、以前のコールバック実装を新しく生成されたコードとマージする必要がなくなります。

新しい symbol 属性は、次のマニフェスト要素で使用できます。

属性はsymbolプロバイダーcounterSet に必要で、counter には省略可能です。 属性を使用すると、プロバイダー関数を呼び出すときに各要素を参照するために使用できるシンボリック名を指定できます (たとえば、 PerfCreateInstance を呼び出すときにカウンター セットのシンボリック名を使用できます)。

Windows Vista

カウンター データを提供するためのパフォーマンス カウンター アーキテクチャは、このリリースで完全に変更されました。

以前は、INI ファイルを使用してカウンター データを定義し、コンシューマーが要求したときにデータを提供するためにコンシューマーのプロセスで実行されるパフォーマンス DLL を実装しました。 このアーキテクチャは非推奨であり、パフォーマンスと信頼性に関する重大な問題のため、新しいコードには推奨されません。

新しいアーキテクチャでは、マニフェストを使用してカウンター データを定義し、プロバイダーのプロセスでコードを実行して、コンシューマーがデータを要求したときにデータを提供します。 詳細については、「 バージョン 2.0 を使用したカウンター データの提供」を参照してください。

このリリースでは、次の関数が追加されました。

このリリースでは、次の構造体が追加されました。

マニフェストでカウンターを定義するために使用する XML 要素の一覧については、「 パフォーマンス カウンター スキーマ」を参照してください。

マニフェストを解析し、プロバイダーの開始点として使用するコードを生成する CTRPP プリプロセッサ ツールの詳細については、「 CTRPP」を参照してください。