Partager via


<GCHeapCount>, élément

Spécifie le nombre de tas/threads à utiliser pour le nettoyage de la mémoire du serveur.

<configuration>
  <runtime>
    <GCHeapCount>

Syntaxe

<GCHeapCount
   enabled="nn"/>

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.

Spécifie le nombre de tas à utiliser pour le nettoyage de la mémoire du serveur. Le nombre réel de tas est le nombre minimum de tas que vous spécifiez et le nombre de processeurs que votre processus est autorisé à utiliser.

Attribut enabled

Valeur Description
nn Nombre de tas à utiliser pour le nettoyage de la mémoire du serveur.

É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

Par défaut, une affinité processeur lie les threads de nettoyage de la mémoire du serveur à leur processeur respectif, de sorte qu’il existe un tas de nettoyage de la mémoire, un thread de nettoyage de la mémoire du serveur, et un thread de nettoyage de la mémoire du serveur en arrière-plan pour chaque processeur. À compter de .NET Framework 4.6.2, vous pouvez utiliser l’élément GCHeapCount pour limiter le nombre de tas que votre application utilise pour le nettoyage de la mémoire du serveur. La limitation du nombre de tas utilisés pour le nettoyage de la mémoire du serveur est particulièrement utile pour les systèmes qui exécutent plusieurs instances d’une application serveur.

GCHeapCount est généralement utilisé avec deux autres indicateurs :

  • GCNoAffinitize qui contrôle si les threads/tas de nettoyage de la mémoire du serveur ont une affinité avec des processeurs.

  • GCHeapAffinitizeMask qui contrôle l’affinité des threads/tas de nettoyage de la mémoire GC avec les processeurs.

Si GCHeapCount est défini et si GCNoAffinitize est désactivé (paramétrage par défaut), il existe une affinité entre les nn threads/tas de nettoyage de la mémoire et les nn premiers processeurs. Vous pouvez utiliser l’élément GCHeapAffinitizeMask pour spécifier les processeurs qu’utilisent les tas de nettoyage de la mémoire du processus. Autrement, si plusieurs processus serveur s’exécutent sur un système, leur utilisation du processeur se chevauche.

Si GCHeapCount est défini et si GCNoAffinitize est activé, le récupérateur de mémoire limite le nombre de processeurs utilisés pour le nettoyage de la mémoire du serveur, mais n’établit pas d’affinité entre des tas de nettoyage de la mémoire et des processeurs.

Exemple

L’exemple suivant indique qu’une application utilise le nettoyage de la mémoire du serveur avec 10 tas/threads. Étant donné que vous ne souhaitez pas que ces tas se chevauchent avec des tas d’autres applications s’exécutant sur le système, vous utilisez GCHeapAffinitizeMask pour spécifier que le processus doit utiliser les processeurs 0 à 9.

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCHeapAffinitizeMask enabled="1023"/>
   </runtime>
</configuration>

L’exemple suivant n’affinitise pas les threads GC du serveur et limite le nombre de segments de mémoire/threads GC à 10.

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCNoAffinitize enabled="true"/>
   </runtime>
</configuration>

Voir aussi