Проектирование объектов и счетчиков
Объект производительности — это сущность, для которой доступны данные о производительности. Счетчики производительности определяют тип данных, доступных для объекта производительности. Приложение может предоставлять сведения для нескольких объектов производительности. Объекты производительности могут содержать либо счетчики одного экземпляра, либо несколько счетчиков экземпляров. Объект одного экземпляра возвращает один набор значений счетчиков.
Объект с несколькими экземплярами возвращает экземпляр объекта для каждого вхождения объекта, которым управляет приложение. Например, приложение SCSI может определить объект диска с двумя счетчиками, такими как Bytes Read и Bytes Written. Когда потребитель запрашивает объект, библиотека DLL производительности возвращает экземпляр объекта для каждого диска, которым управляет приложение.
После принятия решения о поддержке объекта одного или нескольких экземпляров необходимо выбрать тип счетчиков, которые должен предоставить объект. Например, можно указать значения счетчиков, которые отображаются в виде необработанных значений, в виде ставок или в процентах.
Список стандартных типов счетчиков, которые следует выбрать, см. в разделе Типы счетчиков комплекта развертывания Windows Server 2003. В зависимости от типа счетчика можно просто предоставить необработанные данные или также может потребоваться предоставить сведения о времени и частоте, а также дополнительные данные счетчика, используемые потребителем для вычисления отображаемого значения.
Метод, используемый для сбора данных, может быть таким же простым, как увеличение счетчика при каждом вызове конкретной подпрограммы в приложении, или может включать в себя трудоемкие вычисления. Счетчики и таймеры должны увеличиваться и никогда не очищаться. Счетчики могут упаковывать, если они не переносятся дважды между выборкой потребителем. Приложение может собирать и хранить данные во время обычного выполнения, если это не влияет на его производительность.
Для некоторых типов данных может быть более эффективным или подходящим сбор данных по запросу. В этом случае библиотека DLL производительности должна сообщить приложению о том, что данные были запрошены. Для данных, которые являются дорогостоящими для сбора (с точки зрения времени процессора или использования памяти), рекомендуется собирать данные только в том случае, если потребитель запрашивает дорогостоящие данные. Это позволяет потребителю регулярно запрашивать данные для всех счетчиков, которые не являются дорогостоящими. Данные можно запрашивать только при необходимости. Средство "Производительность" не собирает данные о затратах .