Partilhar via


<forcePerformanceCounterUniqueSharedMemoryReads> Elemento

Especifica se PerfCounter.dll utiliza a definição do registo CategoryOptions numa aplicação .NET Framework versão 1.1 para determinar se deve carregar dados do contador de desempenho a partir da memória partilhada específica da categoria ou da memória global.

<configuração>
   <tempo de execução>
     <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 obrigatório.

Indica se PerfCounter.dll utiliza a definição do registo CategoryOptions para determinar se deve carregar dados do contador de desempenho a partir da memória partilhada específica da categoria ou da memória global.

Atributo ativado

Valor Description
false PerfCounter.dll não usa a definição de registo CategoryOptions. Esta é a configuração predefinida.
true PerfCounter.dll usa a definição do registo CategoryOptions.

Elementos Subordinados

Nenhum.

Elementos Principais

Elemento Description
configuration O elemento raiz em cada arquivo de configuração usado pelo Common Language Runtime e aplicativos .NET Framework.
runtime Contém informações sobre encadernação de montagem e recolha de lixo.

Observações

Nas versões do .NET Framework anteriores ao .NET Framework 4, a versão de PerfCounter.dll carregada correspondia ao tempo de execução carregado no processo. Se um computador tivesse tanto o .NET Framework versão 1.1 como o .NET Framework 2.0 instalados, uma aplicação .NET Framework 1.1 carregaria a versão .NET Framework 1.1 do PerfCounter.dll. A partir do .NET Framework 4, a versão mais recente instalada do PerfCounter.dll é carregada. Isto significa que uma aplicação .NET Framework 1.1 carregará a versão .NET Framework 4 de 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 registo CategoryOptions para cada fornecedor para determinar se deve ler 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 do registo, porque não tem conhecimento da memória partilhada específica de cada categoria; Lê sempre a partir da memória partilhada global.

Para compatibilidade retroativa, o .NET Framework 4 PerfCounter.dll não verifica a entrada do registo CategoryOptions quando executado numa aplicação .NET Framework 1.1. Simplesmente utiliza memória partilhada global, tal como o .NET Framework 1.1 PerfCounter.dll. No entanto, pode instruir o PerfCounter.dll do .NET Framework 4 a verificar a definição do registo ativando o <forcePerformanceCounterUniqueSharedMemoryReads> elemento.

Observação

Ativar o <forcePerformanceCounterUniqueSharedMemoryReads> elemento não garante que a memória partilhada específica de uma categoria será utilizada. A configuração ativada true só faz com que PerfCounter.dll faça referência à definição do registo CategoryOptions. A definição padrão para o CategoryOptions é usar memória partilhada específica de cada categoria; no entanto, pode alterar o CategoryOptions para indicar que a memória partilhada global deve ser utilizada.

A chave do registo que contém a definição CategoryOptions é HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<categoryName>\Performance. Por defeito, o CategoryOptions está definido como 3, o que instrui PerfCounter.dll a usar memória partilhada específica de cada categoria. Se o CategoryOptions estiver definido para 0, PerfCounter.dll utiliza memória partilhada global. Os dados da instância serão reutilizados apenas se o nome da instância criada for idêntico ao da instância a ser reutilizada. Todas as versões poderão escrever para a categoria. Se o CategoryOptions estiver definido como 1, é usada memória partilhada global, mas os dados da instância podem ser reutilizados se o nome da categoria tiver o mesmo comprimento da categoria a ser reutilizada.

As definições 0 e 1 podem levar a fugas de memória e ao enchimento da memória do contador de desempenho.

Example

O exemplo seguinte mostra como especificar que PerfCounter.dll deve referenciar a entrada do registo CategoryOptions para determinar se deve usar memória partilhada específica de cada categoria.

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

Consulte também