Compartilhar via


Design de objeto e contador

Um objeto de desempenho é uma entidade para a qual os dados de desempenho estão disponíveis. Os contadores de desempenho definem o tipo de dados que está disponível para um objeto de desempenho. Um aplicativo pode fornecer informações para vários objetos de desempenho. Objetos de desempenho podem conter contadores de instância única ou contadores de várias instâncias. Um único objeto de instância retorna um único conjunto de valores de contador.

Um objeto de várias instâncias retorna uma instância do objeto para cada ocorrência do objeto que o aplicativo controla. Por exemplo, um aplicativo SCSI pode definir um objeto de unidade com dois contadores, como Bytes Lidos e Bytes Gravados. Quando o consumidor consulta o objeto, a DLL de desempenho retorna uma instância do objeto para cada unidade que o aplicativo controla.

Depois de decidir se o objeto dá suporte a uma única instância ou a várias instâncias, você precisa decidir sobre o tipo de contadores que deseja que o objeto forneça. Por exemplo, você pode fornecer valores de contador que são exibidos como valores brutos, como taxas ou como porcentagens.

Para obter uma lista dos tipos de contador predefinidos que você deve escolher, consulte a seção Tipos de contador do Kit de Implantação do Windows Server 2003. Dependendo do tipo de contador, você pode simplesmente fornecer os dados brutos ou também pode precisar fornecer informações de tempo e frequência e dados de contador adicionais usados pelo consumidor para calcular um valor exibivel.

O método usado para coletar os dados pode ser tão simples quanto incrementar um contador sempre que uma rotina específica no aplicativo é chamada ou pode envolver cálculos demorados. Contadores e temporizadores devem incrementar e nunca ser limpos. Os contadores podem ser encapsulados, desde que não sejam encapsulados duas vezes entre serem amostrados pelo consumidor. Seu aplicativo pode coletar e armazenar dados durante sua execução normal, desde que não afete seu desempenho.

Para alguns tipos de dados, pode ser mais eficiente ou apropriado coletar os dados sob demanda. Nessa situação, a DLL de desempenho deve comunicar ao aplicativo que os dados foram solicitados. Para dados que são caros de coletar (em termos de tempo do processador ou uso de memória), considere coletar dados somente quando o consumidor solicitar dados caros . Isso permite que um consumidor solicite dados rotineiramente para todos os contadores que não são caros. Os dados só podem ser solicitados quando necessário. A ferramenta Desempenho não coleta dados caros .