Partager via


<forcePerformanceCounterUniqueSharedMemoryReads>, élément

Indique si PerfCounter.dll utilise le paramètre de Registre CategoryOptions dans une application.NET Framework version 1.1 pour déterminer s’il faut charger des données du compteur de performance à partir de la mémoire globale ou de la mémoire partagée propre à la catégorie.

<configuration>
  <runtime>
    <forcePerformanceCounterUniqueSharedMemoryReads>

Syntaxe

<forcePerformanceCounterUniqueSharedMemoryReads
enabled="true|false"/>  

Attributs et éléments

Les sections suivantes décrivent des attributs, des éléments enfants et des éléments parents.

Attributs

Attribut Description
enabled Attribut requis.

Indique si PerfCounter.dll utilise le paramètre de Registre CategoryOptions pour déterminer s’il faut charger les données du compteur de performances à partir de la mémoire globale ou de la mémoire partagée propre à la catégorie.

Attribut enabled

Valeur Description
false PerfCounter.dll n’utilise pas le paramètre de Registre CategoryOptions. Il s’agit de la valeur par défaut.
true PerfCounter.dll utilise le paramètre de Registre CategoryOptions.

Éléments enfants

Aucune.

Éléments parents

Élément Description
configuration Élément racine de chaque fichier de configuration utilisé par le Common Language Runtime et les applications .NET Framework.
runtime Contient des informations sur les liaisons d’assembly et l’opération garbage collection.

Notes

Dans les versions de .NET Framework antérieures à .NET Framework 4, la version de PerfCounter.dll qui était chargée correspondait au runtime qui était chargé dans le processus. Si .NET Framework version 1.1 et .NET Framework 2.0 étaient tous deux installés sur un ordinateur, une application .NET Framework 1.1 chargeait la version .NET Framework 1.1 de PerfCounter.dll. Depuis .NET Framework 4, la version installée la plus récente de PerfCounter.dll est chargée. Cela signifie qu’une application .NET Framework 1.1 charge la version .NET Framework 4 de PerfCounter.dll si .NET Framework 4 est installé sur l’ordinateur.

Depuis .NET Framework 4, quand des compteurs de performances sont utilisés, PerfCounter.dll vérifie l’entrée de Registre CategoryOptions pour chaque fournisseur afin de déterminer s’il doit lire dans la mémoire partagée propre à la catégorie ou dans la mémoire partagée globale. La version .NET Framework 1.1 de PerfCounter.dll ne lit pas cette entrée de Registre, car elle n’a pas connaissance de la mémoire partagée propre à la catégorie ; elle lit toujours dans la mémoire partagée globale.

Pour assurer une compatibilité descendante, la version .NET Framework 4 de PerfCounter.dll ne vérifie pas l’entrée de Registre CategoryOptions quand elle s’exécute dans une application .NET Framework 1.1. Elle utilise simplement la mémoire partagée globale, comme la version .NET Framework 1.1 de PerfCounter.dll. Cependant, vous pouvez faire en sorte que la version .NET Framework 4 de PerfCounter.dll vérifie le paramètre de Registre en activant l’élément <forcePerformanceCounterUniqueSharedMemoryReads>.

Notes

L’activation de l’élément <forcePerformanceCounterUniqueSharedMemoryReads> ne garantit pas que la mémoire partagée propre à la catégorie sera utilisée. En activant le paramètre avec true, PerfCounter.dll fait uniquement référence au paramètre de Registre CategoryOptions. Par défaut, CategoryOptions utilise la mémoire partagée propre à la catégorie. Néanmoins, vous pouvez modifier CategoryOptions de telle sorte que la mémoire partagée globale soit utilisée.

La clé de Registre qui contient le paramètre CategoryOptions est HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\<categoryName>\Performance. Par défaut, CategoryOptions est défini sur 3, ce qui donne instruction à PerfCounter.dll d’utiliser la mémoire partagée propre à la catégorie. Si CategoryOptions est défini sur 0, PerfCounter.dll utilise la mémoire partagée globale. Les données d’instance sont réutilisées uniquement si le nom de l’instance créée est identique à l’instance réutilisée. Toutes les versions peuvent écrire dans la catégorie. Si CategoryOptions est défini sur 1, la mémoire partagée globale est utilisée, mais les données d’instance peuvent être réutilisées si le nom de la catégorie est de la même longueur que la catégorie réutilisée.

Les paramètres 0 et 1 peuvent entraîner des fuites de mémoire et le remplissage de la mémoire du compteur de performances.

Exemple

L’exemple suivant montre comment faire en sorte que PerfCounter.dll fasse référence à l’entrée de Registre CategoryOptions pour déterminer s’il faut utiliser la mémoire partagée spécifique à la catégorie.

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

Voir aussi