Compartilhar via


<forcePerformanceCounterUniqueSharedMemoryReads> Elemento

Especifica se PerfCounter.dll usa a configuração do Registro CategoryOptions em um aplicativo .NET Framework versão 1.1 para determinar se os dados do contador de desempenho devem ser carregados da memória compartilhada específica da categoria ou da memória global.

<configuração>
   <Runtime>
     <forcePerformanceCounterUniqueSharedMemoryReads>

Sintaxe

<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Attributes

Attribute Description
enabled Atributo necessário.

Indica se PerfCounter.dll usa a configuração do registro CategoryOptions para determinar se os dados do contador de desempenho devem ser carregados da memória compartilhada específica da categoria ou da memória global.

Atributo habilitado

Value Description
false PerfCounter.dll não usa a configuração do registro CategoryOptions Esse é o padrão.
true PerfCounter.dll usa a configuração do Registro CategoryOptions.

Elementos filho

Nenhum.

Elementos pai

Elemento Description
configuration O elemento raiz em cada arquivo de configuração usado pelos aplicativos do Common Language Runtime e .NET Framework.
runtime Contém informações sobre associação de assembly e coleta de lixo.

Observações

Nas versões do .NET Framework antes do .NET Framework 4, a versão do PerfCounter.dll que foi carregada correspondeu ao runtime que foi carregado no processo. Se um computador tivesse o .NET Framework versão 1.1 e o .NET Framework 2.0 instalado, um aplicativo .NET Framework 1.1 carregaria a versão do .NET Framework 1.1 do PerfCounter.dll. A partir do .NET Framework 4, a versão mais recente instalada do PerfCounter.dll é carregada. Isso significa que um aplicativo .NET Framework 1.1 carregará a versão do .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 do registro CategoryOptions para cada provedor para determinar se ele deve ler da memória compartilhada específica da categoria ou da memória compartilhada global. O PerfCounter.dll do .NET Framework 1.1 não lê essa entrada do Registro, pois não está ciente da memória compartilhada específica da categoria; ele sempre lê da memória compartilhada global.

Para compatibilidade com versões anteriores, o PerfCounter.dll do .NET Framework 4 não verifica a entrada do registro CategoryOptions ao ser executado em um aplicativo .NET Framework 1.1. Ele simplesmente usa memória compartilhada global, assim como o .NET Framework 1.1 PerfCounter.dll. No entanto, você pode instruir o .NET Framework 4 PerfCounter.dll a verificar a configuração do Registro habilitando o <forcePerformanceCounterUniqueSharedMemoryReads> elemento.

Observação

Habilitar o <forcePerformanceCounterUniqueSharedMemoryReads> elemento não garante que a memória compartilhada específica da categoria será usada. A configuração habilitada só true faz com que PerfCounter.dll referencie a configuração do Registro CategoryOptions. A configuração padrão para CategoryOptions é usar memória compartilhada específica da categoria; no entanto, você pode alterar CategoryOptions para indicar que a memória compartilhada global deve ser usada.

A chave do Registro que contém a configuração CategoryOptions é HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<categoryName>\Performance. Por padrão, CategoryOptions é definido como 3, o que instrui PerfCounter.dll a usar memória compartilhada específica da categoria. Se CategoryOptions for definido como 0, PerfCounter.dll usará memória compartilhada global. Os dados da instância serão reutilizados somente se o nome da instância que está sendo criada for idêntico à instância que está sendo reutilizado. Todas as versões poderão gravar na categoria. Se CategoryOptions for definido como 1, a memória compartilhada global será usada, mas os dados da instância poderão ser reutilizados se o nome da categoria tiver o mesmo comprimento que a categoria que está sendo reutilizado.

As configurações 0 e 1 podem levar a vazamentos de memória e ao preenchimento da memória do contador de desempenho.

Example

O exemplo a seguir mostra como especificar que PerfCounter.dll deve fazer referência à entrada do registro CategoryOptions para determinar se ela deve usar memória compartilhada específica da categoria.

<configuration>
  <runtime>
    <forcePerformanceCounterUniqueSharedMemoryReads enabled="true"/>
  </runtime>
</configuration>

Consulte também