<forcePerformanceCounterUniqueSharedMemoryReads> Element
Especifica se PerfCounter.dll utiliza a definição de registo CategoryOptions numa aplicação .NET Framework versão 1.1 para determinar se deve carregar dados do contador de desempenho da memória partilhada específica da categoria ou da memória global.
<configuração>
<runtime>
<forcePerformanceCounterUniqueSharedMemoryReads>
Syntax
<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>
Atributos e Elementos
As secções seguintes descrevem atributos, elementos subordinados e elementos principais.
Atributos
Atributo | Descrição |
---|---|
enabled |
Atributo obrigatório. Indica se PerfCounter.dll utiliza a definição de registo CategoryOptions para determinar se deve carregar dados do contador de desempenho a partir de memória partilhada específica de categoria ou memória global. |
Atributo ativado
Valor | Descrição |
---|---|
false |
PerfCounter.dll não utiliza a definição de registo CategoryOptions Esta é a predefinição. |
true |
PerfCounter.dll utiliza a definição de registo CategoryOptions. |
Elementos Subordinados
Nenhum.
Elementos Principais
Elemento | Descrição |
---|---|
configuration |
O elemento raiz em todos os ficheiros de configuração utilizados pelo runtime de idioma comum e .NET Framework aplicações. |
runtime |
Contém informações sobre o enlace de montagem e a recolha de lixo. |
Observações
Nas versões do .NET Framework antes do .NET Framework 4, a versão do PerfCounter.dll que foi carregada correspondia ao runtime que foi carregado no processo. Se um computador tivesse a .NET Framework versão 1.1 e a .NET Framework 2.0 instalada, uma aplicação .NET Framework 1.1 carregaria a versão .NET Framework 1.1 do PerfCounter.dll. A partir do .NET Framework 4, é carregada a versão instalada mais recente do PerfCounter.dll. Isto significa que uma aplicação .NET Framework 1.1 carregará a versão .NET Framework 4 do PerfCounter.dll se o .NET Framework 4 estiver instalado no computador.
A partir do .NET Framework 4, ao consumir contadores de desempenho, PerfCounter.dll verifica a entrada de registo CategoryOptions para cada fornecedor para determinar se deve ler a partir da memória partilhada específica da categoria ou da memória partilhada global. O .NET Framework 1.1 PerfCounter.dll não lê essa entrada de registo, porque não tem conhecimento da memória partilhada específica da categoria; lê sempre a partir da memória partilhada global.
Para retrocompatibilidade, o .NET Framework 4 PerfCounter.dll não verifica a entrada de registo CategoryOptions ao executar numa aplicação .NET Framework 1.1. Utiliza simplesmente memória partilhada global, tal como o .NET Framework 1.1 PerfCounter.dll. No entanto, pode instruir o .NET Framework 4 PerfCounter.dll para verificar a definição do registo ao ativar o <forcePerformanceCounterUniqueSharedMemoryReads>
elemento.
Nota
Ativar o <forcePerformanceCounterUniqueSharedMemoryReads>
elemento não garante a utilização da memória partilhada específica da categoria. A definição ativada apenas true
faz com PerfCounter.dll referenciar a definição de registo CategoryOptions. A predefinição de CategoryOptions é utilizar memória partilhada específica de categoria; no entanto, pode alterar CategoryOptions para indicar que deve ser utilizada memória partilhada global.
A chave de registo que contém a definição CategoryOptions é HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<categoryName>\Performance. Por predefinição, CategoryOptions está definido como 3, o que instrui PerfCounter.dll a utilizar memória partilhada específica de categoria. Se CategoryOptions estiver definido como 0, PerfCounter.dll utiliza memória partilhada global. Os dados da instância só serão reutilizados se o nome da instância a ser criada for idêntico à instância que está a ser reutilizada. Todas as versões poderão escrever na categoria. Se CategoryOptions estiver definido como 1, é utilizada memória partilhada global, mas os dados da instância podem ser reutilizados se o nome da categoria tiver o mesmo comprimento que a categoria que está a ser reutilizada.
As definições 0 e 1 podem levar a fugas de memória e ao preenchimento da memória do contador de desempenho.
Exemplo
O exemplo seguinte mostra como especificar que PerfCounter.dll deve referenciar a entrada de registo CategoryOptions para determinar se deve utilizar memória partilhada específica de categoria.
<configuration>
<runtime>
<forcePerformanceCounterUniqueSharedMemoryReads enabled="true"/>
</runtime>
</configuration>