Elemento <forcePerformanceCounterUniqueSharedMemoryReads>

Especifica si PerfCounter.dll usa la configuración del Registro CategoryOptions en una aplicación de .NET Framework 1.1 para determinar si se van a cargar los datos del contador de rendimiento desde la memoria compartida específica de la categoría o la memoria global.

<configuration>
  <runtime>
    <forcePerformanceCounterUniqueSharedMemoryReads>

Sintaxis

<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>  

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
enabled Atributo necesario.

Indica si PerfCounter.dll usa la configuración del Registro CategoryOptions para determinar si se van a cargar los datos del contador de rendimiento desde la memoria compartida específica de la categoría o la memoria global.

Atributo enabled

Valor Descripción
false PerfCounter.dll no usa la configuración del Registro CategoryOptions. Este es el valor predeterminado.
true PerfCounter.dll usa la configuración del Registro CategoryOptions.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento Descripción
configuration Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework.
runtime Contiene información del enlace del ensamblado y de la recolección de elementos no utilizados.

Comentarios

En las versiones de .NET Framework anteriores a .NET Framework 4, la versión de PerfCounter.dll que se cargaba correspondía al tiempo de ejecución que se cargaba en el proceso. Si un equipo tenía instalada la versión 1.1 de .NET Framework y .NET Framework 2.0, una aplicación de .NET Framework 1.1 cargaba la versión de PerfCounter.dll de .NET Framework 1.1. A partir de .NET Framework 4, se carga la versión más reciente instalada de PerfCounter.dll. Esto significa que una aplicación de .NET Framework 1.1 cargará la versión de PerfCounter.dll de .NET Framework 4 si .NET Framework 4 está instalado en el equipo.

A partir de .NET Framework 4, al consumir contadores de rendimiento, PerfCounter.dll comprueba la entrada del Registro CategoryOptions para cada proveedor para determinar si debe leerse desde la memoria compartida específica de la categoría o la memoria compartida global. El archivo PerfCounter.dll de .NET Framework 1.1 no lee esa entrada del Registro porque no es consciente de la memoria compartida específica de la categoría, por lo tanto, siempre lee de la memoria compartida global.

Por motivos de compatibilidad con versiones anteriores, el archivo PerfCounter.dll de .NET Framework 4 no comprueba la entrada del Registro CategoryOptions cuando se ejecuta en una aplicación de .NET Framework 1.1. Simplemente usa memoria compartida global, al igual que el archivo PerfCounter.dll de .NET Framework 1.1. Sin embargo, puede indicar al archivo PerfCounter.dll de .NET Framework 4 que compruebe la configuración del Registro si habilita el elemento <forcePerformanceCounterUniqueSharedMemoryReads>.

Nota

Habilitar el elemento <forcePerformanceCounterUniqueSharedMemoryReads> no garantiza que se use memoria compartida específica de la categoría. Habilitar true solo hace que PerfCounter.dll haga referencia a la configuración del Registro CategoryOptions. La configuración predeterminada para CategoryOptions es usar memoria compartida específica de la categoría; sin embargo, puede cambiar CategoryOptions para indicar que se debe usar la memoria compartida global.

La clave del Registro que contiene el valor CategoryOptions es HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<categoryName>\Performance. De forma predeterminada, CategoryOptions se establece en 3, lo que indica a PerfCounter.dll que debe usar memoria compartida específica de la categoría. Si CategoryOptions se establece en 0, PerfCounter.dll usa memoria compartida global. Los datos de instancia se reutilizarán solo si el nombre de la instancia que se va a crear es idéntico a la instancia que se va a reutilizar. Todas las versiones podrán escribir en la categoría. Si CategoryOptions se establece en 1, se usa la memoria compartida global, pero se pueden reutilizar los datos de instancia si el nombre de categoría tiene la misma longitud que la categoría que se está reutilizando.

Los valores 0 y 1 pueden provocar pérdidas de memoria y el llenado de la memoria del contador de rendimiento.

Ejemplo

En el ejemplo siguiente se muestra cómo especificar que PerfCounter.dll haga referencia a la entrada del Registro CategoryOptions para determinar si debe usar memoria compartida específica de la categoría.

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

Consulte también