Partilhar via


<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>  

Ver também