Поделиться через


3. Определения профилей

Профили записи windows Performance Recorder (WPR) хранятся в XML-файле с расширением WPRP. Определения профилей объединяют определения сборщика и поставщика в WPRP-файле.

Профили

Профиль WPR определяется с помощью (<Profile> … </Profile> XML-тегов, которые ссылаются на XML-теги определения сборщика и поставщика, определенные в том же WPRP-файле или с помощью наследования в другом WPRP-файле. Каждый XML-тег определения профиля должен иметь следующие атрибуты:

  • Id: уникальный идентификатор определения профиля. Используйте следующую конструкцию идентификатора профиля:

    < Имя>.<DetailLevel>.<LoggingMode>.

  • Имя: строка, указывающая имя профиля.

  • DetailLevel: атрибут, указывающий, используется ли определение профиля для трассировки времени (Light) или трассировки анализа (verbose).

  • LoggingMode: атрибут, указывающий, записывает ли профиль события в последовательный файл или в буферы циклической памяти. Все профили должны иметь как файл, так и версию памяти в одном WPRP-файле.

  • Описание: текстовое описание профиля, который видит пользователь.

WPR поддерживает запись производительности как для файлов, так и для режима ведения журнала памяти для каждого WPRP-файла, за исключением профилей включения и выключения. Необходимо войти в файл или выключить профили, но необходимо определить версию файла и памяти. Так как одно определение профиля может поддерживать только один режим ведения журнала, в WPRP-файле может быть два или четыре определения профиля, по одному для каждого сочетания режима ведения журнала и уровня детализации. Все определения профилей в одном WPRP-файле должны иметь один и тот же атрибут 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 содержит ссылки на ранее определенные системы и сборщики событий. Элементы SystemCollectorId и EventCollectorId идентифицируют эти сборщики.

Каждый элемент SystemCollectorId и EventCollectorId содержит обязательный атрибут Value , указывающий атрибут Id используемого сборщика. Каждый элемент 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. Определения систем и поставщиков событий

Режим ведения журнала

Уровень детализации

Категории проблем

SystemCollectorId

HeapEventProviderId