次の方法で共有


1.コレクターの定義

Windows Performance Recorder (WPR) では、現在、システム コレクター、イベント コレクター、ヒープ イベント コレクターの 3 種類のコレクターをサポートしています。 システム コレクターの定義では、NT Kernel Logger と一緒に動作する Windows イベント トレーシング (ETW) システム ロガー セッションのバッファー サイズとその他の属性を指定します。 イベントとヒープのコレクターの定義では、ETW ユーザー セッションのバッファー サイズとその他の属性を指定します。

コレクター定義の順序は、WPR スキーマによって制限されます。 .wprp ファイルでは、システム コレクター定義をイベント コレクター定義の前に配置する必要があります。 これらの定義は、両方ともヒープ コレクター定義の前に配置する必要があります (ヒープ コレクター定義が存在する場合)。 WPR スキーマは WPRControlProfiles スキーマで定義されています。

コレクター属性

コレクターには、次の必須属性があります。

  • Id:.wprp ファイル内のコレクター定義を参照する一意の文字列識別子。

  • Name: コレクターの名前。たとえば、"WPR Collector" です。 システム コレクター名は "NT Kernel Logger" である必要があります。

コレクター定義には、次のバッファー サイズ定義が含まれている必要があります。

  • BufferSize: 1 つのバッファーのサイズをキロバイト (KB) 単位で指定します。

  • Buffers: バッファーの数を指定します。PercentageOfTotalMemory 属性が "true" に設定されている場合は、バッファリングに使用するメモリの合計の割合を指定します。

バッファーの詳細については、「ログ モード」を参照してください。

コレクター定義の例

次のコード例は、システム コレクター定義とイベント コレクター定義を示しています。

<SystemCollector
  Id="WPRSystemCollector"
  Name="NT Kernel Logger"
  FileName="WPRKernel.etl">
  <BufferSize
    Value="512"/>
  <Buffers
    Value="3"
    PercentageOfTotalMemory="true"/>
</SystemCollector>

<EventCollector
  Id="WPREventCollector"
  Name="WPR Event Collector"
  FileName="somefilename.etl">
  <BufferSize
    Value="128"/> 
  <Buffers
    Value="64"/>
</EventCollector>

<HeapEventCollector
  Id="Base_Heap_Collector"
  Name="Base Heap Collector"
  FileName="heap.etl">
</HeapEventCollector>

継承の例

Windows Performance Recorder では、WPR プロファイルの XML スキーマの Base="" 属性を使用してオブジェクトの継承をサポートしています。 これにより、一般的な定義の再使用を追加しながら、オブジェクトの追加または特殊化を段階的に構築できます。

特定のシナリオで、意図しない複雑性と副作用が発生する可能性があります。このセクションでは、例と推奨されるベスト プラクティスについて説明します。

例 1

継承の例

プロファイル Profile A が何らかの変更でイベント コレクター Collector A を使用する場合は、Collector A から派生するコレクター Collector A2 を定義して (Base="Collector A")、そのコレクター Collector A2 を参照します。 コレクター オブジェクトだけが別のコレクター オブジェクトから派生して直接参照されるので、この方法をお勧めします。

例 2

継承の例 2

プロファイル Profile A はコレクター Collector A を参照します。別のプロファイル Profile B では、Profile A から派生させる変更が必要であり、その変更をその定義で直接指定します。 プロファイル オブジェクトのみが別のプロファイル オブジェクトから派生しているため、これは推奨される方法です。

例 3

継承の例 3

プロファイル ProfileA は コレクター Collector A を参照します。コレクター Collector A2Collector A から派生します。最後に、プロファイル Profile BProfile A から派生し、Profile B の親プロファイルで既に参照されている Collector A も参照します。

この場合、Collector A2 の定義を評価する方法があいまいです。 一方のケースではプロファイルの派生が優先され、他方ではコレクターの派生が優先されます。 順序付けが未定義で、操作の順序によって結果が異なる可能性があるため、これは推奨されません。

このことにより、複数の種類のオブジェクトにまたがって派生を組み合わせないようにしてください。

記録プロファイルの作成

2.システムとイベント プロバイダーの定義

プロファイル XML リファレンスの記録