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

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

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, которые указывают имя и расположение файла заголовка и ресурса соответственно.
  • Можно использовать необязательный новый аргумент -prefix, чтобы указать строку для добавления в начало глобальных переменных и функций, определенных в созданном файле заголовка.
  • Если необходимо обновить манифест счетчиков, использование нового поколения кода устраняет необходимость слияния предыдущей реализации обратного вызова с новым созданным кодом, так как обратные вызовы больше не включаются в созданный код.

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

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

Windows Vista

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

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

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

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

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

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

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