3.配置文件定义

Windows Performance Recorder (WPR) 记录配置文件存储在扩展名为 .wprp 的 XML 文件中。 配置文件定义将收集器和提供程序定义汇集在 .wprp 文件中。

配置文件

你可以使用 (<Profile> … </Profile> XML 标记来定义 WPR 配置文件,这些标记是指在同一个 .wprp 文件中定义或者通过在另一个 .wprp 文件中使用继承定义的收集器和提供程序定义 XML 标记。 每个配置文件定义 XML 标记必须具有以下属性:

  • Id:配置文件定义的唯一标识符。 使用以下配置文件标识符构造:

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

  • Name:指示配置文件的名称的字符串。

  • DetailLevel:指定是将配置文件定义用于计时跟踪(精简)还是分析跟踪(详细)。

  • LoggingMode:指定配置文件是将事件记录到顺序文件还是循环内存缓冲区的属性。 所有配置文件都必须在同一个 .wprp 文件中同时具有文件和内存版本。

  • Description:用户看到的配置文件的文本说明。

WPR 支持针对每个 .wprp 文件的文件和内存日志记录模式进行性能记录(开关配置文件除外)。 必须将开关配置文件记录到文件,但必须同时定义文件和内存版本。 由于单个配置文件定义只能支持一个日志记录模式,因此 .wprp 文件中可能有两个或四个配置文件定义,每个配置文件模式和详细信息级别的组合各有一个。 单个 .wprp 文件中的所有配置文件定义必须具有相同的 Name 属性。

<Name>.<DetailLevel>.<LoggingMode>

下面的代码示例说明如何使用 Example1.wprp。 此文件包含两个配置文件定义。 省略号 (...) 表示配置文件的正文。

<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。 此文件包含四个配置文件定义。 省略号 (...) 表示配置文件的正文。

<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 元素包含对以前定义的系统和事件收集器的引用。 SystemCollectorIdEventCollectorId 元素用于标识这些收集器。

每个 SystemCollectorId 和 EventCollectorId 元素都包含一个必需的 Value 属性,该属性指定要使用的收集器的 Id 属性。 每个 SystemCollectorId 和 EventCollectorId 元素还包含一个 SystemProviderIdEventCollectorId 元素的列表。 这些元素具有相似的语法。 但是,这些元素引用以前定义的系统和事件提供程序。

还可以在配置文件定义中定义收集器和提供程序。

配置文件定义示例

下面的代码示例显示了一个完整的配置文件定义。

<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