Novidades com contadores de desempenho
Esta seção descreve os novos recursos que foram adicionados aos Contadores de Desempenho para cada versão.
Windows 10 20H1
Se você estiver lendo dados de desempenho diretamente do registro, agora poderá executar uma coleção somente de metadados para evitar trabalho desnecessário ao fazer uma lista de objetos e contadores de desempenho disponíveis. Se você usar MetadataGlobal
em vez de Global
em sua consulta, todas as DLLs de provedor habilitadas para metadados ignorarão a etapa de coleta de dados, potencialmente melhorando o desempenho da consulta em sistemas com muitos processos ou threads. As DLLs do provedor que não estão habilitadas para metadados continuarão funcionando como antes.
Se você estiver fornecendo dados de desempenho usando uma DLL de desempenho, poderá implementar o suporte para coleta somente de metadados para evitar coleta de dados desnecessária. Atualize sua Collect
função para responder a MetadataGlobal
consultas e MetadataCostly
apenas com os metadados (use PERF_METADATA_NO_INSTANCES
ou PERF_METADATA_MULTIPLE_INSTANCES
para NumInstances
e omita todos os PERF_INSTANCE_DEFINITION
blocos da resposta) e adicione um Collect Supports Metadata
valor do Registro com REG_DWORD
o valor de 1 à subchave do Performance
serviço.
Windows 7 e Windows Server 2008 R2
A ferramenta CTRPP foi alterada para melhorar e simplificar a geração de código. A ferramenta agora gera apenas um cabeçalho e um arquivo de recurso. Se você quiser um comportamento de geração de código antigo (não recomendado), poderá usar o novo -legacy
argumento .
- Agora você deve especificar os
-o
novos argumentos e-rc
que especificam o nome e o local do cabeçalho e do arquivo de recurso, respectivamente. - Você pode usar o novo
-prefix
argumento opcional para especificar uma cadeia de caracteres a ser adicionada ao início de variáveis globais e funções definidas no arquivo de cabeçalho gerado. - Se você precisar atualizar o manifesto dos contadores, o uso da nova geração de código eliminará a necessidade de mesclar a implementação de retorno de chamada anterior com o novo código gerado, pois os retornos de chamada não estão mais incluídos no código gerado.
Um novo symbol
atributo está disponível para os seguintes elementos de manifesto:
O symbol
atributo é necessário para provider e counterSet e é opcional para contador. O atributo permite fornecer um nome simbólico que você pode usar para referenciar cada elemento ao chamar as funções de provedor (por exemplo, você pode usar o nome simbólico do conjunto de contadores ao chamar PerfCreateInstance).
Windows Vista
A arquitetura de Contadores de Desempenho para fornecer dados de contador foi completamente alterada para esta versão.
Anteriormente, você usava um arquivo INI para definir os dados do contador e implementava uma DLL de desempenho que era executada no processo do consumidor para fornecer os dados quando um consumidor os solicitava. Essa arquitetura foi preterida e não é recomendada para o novo código devido a problemas significativos de desempenho e confiabilidade.
A nova arquitetura usa um manifesto para definir os dados do contador e executa o código no processo do provedor para fornecer os dados quando um consumidor os solicita. Para obter detalhes adicionais, consulte Fornecendo dados de contador usando a versão 2.0.
As seguintes funções foram adicionadas para esta versão:
- ControlCallback
- PerfCreateInstance
- PerfDeleteInstance
- PerfQueryInstance
- PerfSetCounterSetInfo
- PerfSetULongCounterValue
- PerfSetULongLongCounterValue
- PerfSetCounterRefValue
- PerfStartProvider
- PerfStopProvider
As seguintes estruturas foram adicionadas para esta versão:
Para obter uma lista dos elementos XML que você usa em seu manifesto para definir seus contadores, consulte Esquema de contadores de desempenho.
Para obter informações sobre a ferramenta de pré-processador CTRPP que analisa seu manifesto e gera o código que você usa como ponto de partida para seu provedor, consulte CTRPP.