<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>