Новые возможности счетчиков производительности

В этом разделе описываются новые функции, добавленные в счетчики производительности для каждого выпуска.

Windows 10 20H1

Если вы считываете данные о производительности непосредственно из реестра, теперь можно выполнить сбор только метаданных, чтобы избежать ненужных операций при создании списка доступных объектов производительности и счетчиков. Если вы используете MetadataGlobal вместо Global в запросе, все библиотеки DLL поставщика с поддержкой метаданных пропускают этап сбора данных, что потенциально повышает производительность запросов в системах с большим количеством процессов или потоков. Библиотеки DLL поставщиков, не поддерживающие метаданные, будут работать так же, как и раньше.

Если вы предоставляете данные о производительности с помощью библиотеки DLL производительности, можно реализовать поддержку сбора только метаданных, чтобы избежать сбора ненужных данных. Обновите Collect функцию, чтобы отвечать MetadataGlobal на запросы и MetadataCostly только метаданными (используйте PERF_METADATA_NO_INSTANCES или PERF_METADATA_MULTIPLE_INSTANCES для NumInstances и пропускайте все PERF_INSTANCE_DEFINITION блоки в ответе), а затем добавьте Collect Supports Metadata значение реестра со REG_DWORD значением 1 в подраздел службы Performance .

Windows 7 и Windows Server 2008 R2

Средство CTRPP было изменено для улучшения и упрощения создания кода. Теперь средство создает только заголовок и файл ресурсов. Если вы хотите использовать старое поведение создания кода (не рекомендуется), можно использовать новый -legacy аргумент .

  • Теперь необходимо указать новые -o аргументы и -rc , которые указывают имя и расположение заголовка и файла ресурсов соответственно.
  • Необязательный аргумент new -prefix позволяет указать строку, добавляемую в начало глобальных переменных и функций, определенных в созданном файле заголовка.
  • Если необходимо обновить манифест счетчиков, использование нового поколения кода избавляет от необходимости объединять предыдущую реализацию обратного вызова с новым созданным кодом, так как обратные вызовы больше не включаются в созданный код.

symbol Новый атрибут доступен для следующих элементов манифеста:

Атрибут symbol является обязательным для поставщика и counterSet и необязательным для счетчика. Атрибут позволяет указать символьное имя, которое можно использовать для ссылки на каждый элемент при вызове функций поставщика (например, можно использовать символическое имя набора счетчиков при вызове PerfCreateInstance).

Windows Vista

Архитектура счетчиков производительности для предоставления данных счетчиков была полностью изменена в этом выпуске.

Ранее вы использовали INI-файл для определения данных счетчиков и реализовали библиотеку DLL производительности, которая выполнялась в процессе потребителя для предоставления данных, когда потребитель запросил их. Эта архитектура является устаревшей и не рекомендуется для нового кода из-за значительных проблем с производительностью и надежностью.

Новая архитектура использует манифест для определения данных счетчика и выполняет код в процессе поставщика, чтобы предоставить данные, когда потребитель запрашивает их. Дополнительные сведения см. в статье Предоставление данных счетчика с помощью версии 2.0.

Для этого выпуска были добавлены следующие функции:

Для этого выпуска были добавлены следующие структуры:

Список XML-элементов, используемых в манифесте для определения счетчиков, см. в разделе Схема счетчиков производительности.

Сведения о средстве предварительного процессора CTRPP, который анализирует манифест и создает код, используемый в качестве отправной точки для поставщика, см. в разделе CTRPP.