次の方法で共有


3.プロファイルの定義

Windows パフォーマンス レコーダー (WPR) の記録プロファイルは、.wprp 拡張子が付いた XML ファイルに保存されます。 プロファイル定義は、コレクターとプロバイダーの定義を .wprp ファイルにまとめたものです。

Profiles

WPR プロファイルを定義するには、(<Profile> … </Profile> XML タグを使用し、このタグでコレクターとプロバイダーの定義 XML タグを参照します。これらの定義 XML タグは、同じ .wprp ファイルで定義するか、別の .wprp ファイルで継承を使用して定義します。 各プロファイル定義 XML タグには、次の属性が必要です。

  • Id: プロファイル定義の一意識別子。 プロファイルの識別子には次の構成を使用します。

    <Name>.<DetailLevel>.<LoggingMode>.

  • Name: プロファイルの名前を表す文字列。

  • DetailLevel: プロファイル定義をタイミング トレース (Light) に使用するか、分析トレース (Verbose) に使用するかを指定する属性。

  • LoggingMode: そのプロファイルでイベントをシーケンシャル ファイルにログ記録するか、循環メモリ バッファーにログ記録するかを指定する属性。 すべてのプロファイルにファイルとメモリの両方のバージョンが同じ .wprp ファイル内に存在する必要があります。

  • Description: ユーザーに表示されるプロファイルの説明テキスト。

WPR では、オン/オフ プロファイルを除き、各 .wprp ファイルのファイルとメモリの両方のログ モードに対してパフォーマンスの記録がサポートされています。 オン/オフ プロファイルはファイルにログ記録する必要がありますが、ファイルとメモリの両方のバージョンを定義する必要があります。 1 つのプロファイル定義でサポートできるログ モードは 1 つだけなので、.wprp ファイルに存在するプロファイル定義は 2 つまたは 4 つ (ログ モードと詳細レベルの組み合わせごとに 1 つ) です。 1 つの .wprp ファイル内にあるすべてのプロファイル定義は、Name 属性が同じである必要があります。

<Name>.<DetailLevel>.<LoggingMode>

次のコード例は、Example1.wprp を示しています。 このファイルには、2 つのプロファイル定義が含まれています。 省略記号 (...) は、プロファイルの本文を表します。

<Profile
  Id="Example1.Verbose.File"
  Name="Example1"
  DetailLevel="Verbose"
  LoggingMode="File"
  Description="Example1 profile">
…
</Profile>
<Profile
  Id="Example1.Verbose.Memory"
  Name="Example1"
  DetailLevel="Verbose"
  LoggingMode="Memory"
  Description="Example1 profile">
…
</Profile>

次のコード例は、Example2.wprp を示しています。 このファイルには、4 つのプロファイル定義が含まれています。 省略記号 (...) は、プロファイルの本文を表します。

<Profile
  Id="Example2.Verbose.File"
  Name="Example2"
  DetailLevel="Verbose"
  LoggingMode="File"
  Description="Example2 profile">
…
</Profile>
<Profile
  Id="Example2.Light.File"
  Name="Example2"
  DetailLevel="Light"
  LoggingMode="File"
  Description="Example2 profile">
…
</Profile>
<Profile
  Id="Example2.Verbose.Memory"
  Name="Example2"
  DetailLevel="Verbose"
  LoggingMode="Memory"
  Description="Example2 profile">
…
</Profile>
<Profile
  Id="Example2.Light.Memory"
  Name="Example2"
  DetailLevel="Light"
  LoggingMode="Memory"
  Description="Example2 profile">
…
</Profile>

Collectors 要素

Collectors 要素には、以前に定義されたシステム コレクターやイベント コレクターへの参照が含まれています。 これらのコレクターは、SystemCollectorId 要素と EventCollectorId 要素によって識別されます。

SystemCollectorId 要素と EventCollectorId 要素にはそれぞれ、使用するコレクターの Id 属性を指定する必須の Value 属性が含まれています。 SystemCollectorId 要素と EventCollectorId 要素にはそれぞれ、SystemProviderId 要素または EventCollectorId 要素の一覧も含まれています。 これらの要素の構文は似ています。 ただし、これらの要素は、以前に定義されたシステム プロバイダーやイベント プロバイダーを参照します。

プロファイル定義内でコレクターとプロバイダーを定義することもできます。

プロファイル定義の例

次のコード例は、完全なプロファイル定義を示しています。

<Profile
  Id="Example.Light.File"
  Name="Example"
  DetailLevel="Light"
  LoggingMode="File"
  Description="Example profile">
  <ProblemCategories> 
    <ProblemCategory
      Value="First Level Triage"/>
  </ProblemCategories> 
  <Collectors> 
    <SystemCollectorId
      Value="WPRSystemCollector">
      <!--Enables the system provider for this system collector. --> 
      <SystemProviderId
        Value="system-provider"/>
    </SystemCollectorId> 
    <EventCollectorId
      Value="WPREventCollector">
      <EventProviders> 
      <!--Enables two event providers for this event collector. --> 
        <EventProviderId
          Value="Win32K-provider"/>
        <EventProviderId
          Value="Search-Core-provider"/>
      </EventProviders> 
    </EventCollectorId> 
  </Collectors>
</Profile>

記録プロファイルの作成

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

ログ モード

詳細レベル

ProblemCategories

SystemCollectorId

HeapEventProviderId