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>