Partager via


Événements de garbage collection du runtime .NET

Les événements décrits dans cet article collectent des informations relatives au récupérateur de mémoire. Ils aident pour les diagnostics et le débogage, notamment en déterminant le nombre de fois où le garbage collection a été effectué, la quantité de mémoire libérée lors du garbage collection, etc. Pour plus d’informations sur l’utilisation de ces événements à des fins de diagnostic, consultez Journalisation et suivi des applications .NET

Événement GCStart_V2

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCStart_V1 1 Un garbage collection a démarré.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
Count win:UInt32 Le nième garbage collection.
Depth win:UInt32 La génération est collectée.
Reason win:UInt32 Pourquoi le garbage collection a été déclenché :

0x0 - Allocation du tas des petits objets.

0x1 - Induit.

0x2 - Mémoire faible.

0x3 - Vide.

0x4 - Allocation du tas des grands objets.

0x5 - Espace insuffisant (pour le tas des petits objets).

0x6 - Espace insuffisant (pour le tas des grands objets).

0x7 - Induit mais non forcé comme bloquant.
Type win:UInt32 0x0 - Un garbage collection bloquant s’est produit en dehors du garbage collection en arrière-plan.

0x1 - Garbage collection en arrière-plan.

0x2 - Un garbage collection bloquant s’est produit durant le garbage collection en arrière-plan.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement GCEnd_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCEnd_V1 2 Un garbage collection s'est terminé.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
Count win:UInt32 Le nième garbage collection.
Depth win:UInt32 Génération ayant été collectée.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement GCHeapStats_V2

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Description
GCHeapStats_V2 4 Affiche les statistiques relatives aux tas à la fin de chaque garbage collection.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
GenerationSize0 win:UInt64 Taille, en octets, de la mémoire de génération 0.
TotalPromotedSize0 win:UInt64 Nombre d'octets promus de la génération 0 à la génération 1.
GenerationSize1 win:UInt64 Taille, en octets, de la mémoire de génération 1.
TotalPromotedSize1 win:UInt64 Nombre d'octets promus de la génération 1 à la génération 2.
GenerationSize2 win:UInt64 Taille, en octets, de la mémoire de génération 2.
TotalPromotedSize2 win:UInt64 Nombre d'octets ayant survécu dans la génération 2 après la dernière collection.
GenerationSize3 win:UInt64 Taille, en octets, du tas des objets volumineux.
TotalPromotedSize3 win:UInt64 Nombre d'octets ayant survécu dans le tas d'objets volumineux après la dernière collection.
FinalizationPromotedSize win:UInt64 Taille totale, en octets, des objets qui sont prêts pour la finalisation.
FinalizationPromotedCount win:UInt64 Nombre d'objets qui sont prêts pour la finalisation.
PinnedObjectCount win:UInt32 Nombre d'objets (non déplaçables) épinglés.
SinkBlockCount win:UInt32 Nombre de blocs de synchronisation en cours d'utilisation.
GCHandleCount win:UInt32 Nombre de handles de garbage collection en cours d'utilisation.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.
GenerationSize4 win:UInt64 Taille en octets du tas des objets épinglés.
TotalPromotedSize4 win:UInt64 Nombre d’octets ayant survécu dans le tas des objets épinglés après le dernier nettoyage.

Événement GCCreateSegment_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCCreateSegment_V1 5 Un nouveau segment de garbage collection a été créé. En outre, quand le suivi est activé sur un processus en cours d'exécution, cet événement est déclenché pour chaque segment existant.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
Address win:UInt64 Adresse du segment.
Size win:UInt64 Taille du segment.
Type win:UInt32 0x0 – Tas de petits objets.

0x1 – Tas d'objets volumineux.

0x2 – Tas en lecture seule.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Notez que la taille des segments alloués par le garbage collector est spécifique à l'implémentation et susceptible de changer à tout moment, y compris lors des mises à jour périodiques. Votre application ne doit jamais faire d'hypothèses concernant une taille de segment particulière, ni dépendre de celle-ci. Elle ne doit pas non plus tenter de configurer la quantité de mémoire disponible pour les allocations de segments.

Événement GCFreeSegment_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCFreeSegment_V1 6 Un nouveau segment de garbage collection a été libéré.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
Address win:UInt64 Adresse du segment.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement GCRestartEEBegin_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCRestartEEBegin_V1 7 La reprise du common language runtime après sa suspension a commencé.

Cet événement n’a pas de données d’événement.

Événement GCRestartEEEnd_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID d'événement Moment du déclenchement
GCRestartEEEnd_V1 3 La reprise du common language runtime après sa suspension s'est terminée.

Cet événement n’a pas de données d’événement.

Événement GCSuspendEEEnd_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCSuspendEEEnd_V1 8 Fin de la suspension du moteur d'exécution pour le garbage collection.

Cet événement n’a pas de données d’événement.

Événement GCSuspendEEBegin_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCSuspendEEBegin_V1 9 Début de la suspension du moteur d'exécution pour le garbage collection.
Nom du champ Type de données Description
Count win:UInt32 Le nième garbage collection.
Reason win:UInt32 Raison de la mise en suspens de l’EE.

0x0 : Suspendre pour d’autres

0x1 : Suspendre pour GC.

0x2 : Suspendre pour l’arrêt d’AppDomain.

0x3 : Suspendre pour le lancement du code.

0x4 : Suspendre pour l’arrêt.

0x5 : Suspendre pour le débogueur.

0x6 : Suspendre pour la préparation du GC.

0x7 : Suspendre pour le balayage du débogueur

Événement GCAllocationTick_V3

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Détaillé (5)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCAllocationTick_V3 10 Chaque fois qu'environ 100 Ko sont alloués.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
AllocationAmount win:UInt32 Taille de l'allocation, en octets. Cette valeur est correcte pour les allocations inférieures à la longueur d'un ULONG (4 294 967 295 octets). Si l'allocation est supérieure, ce champ contient une valeur tronquée. Utilisez AllocationAmount64 pour les allocations très volumineuses.
AllocationKind win:UInt32 0x0 - Allocation de petits objets (l’allocation se fait dans le tas des petits objets).

0x1 - Allocation de grands objets (l’allocation se fait dans le tas des grands objets).
AllocationAmount64 win:UInt64 Taille de l'allocation, en octets. Cette valeur est correcte pour les allocations très volumineuses.
TypeId win:Pointer Adresse de MethodTable. Quand plusieurs types d'objets ont été alloués au cours de cet événement, il s'agit de l'adresse de MethodTable qui correspond au dernier objet alloué (l'objet qui a provoqué le dépassement du seuil de 100 Ko).
TypeName win:UnicodeString Nom du type ayant été alloué. Quand plusieurs types d'objets ont été alloués au cours de cet événement, il s'agit du type du dernier objet alloué (l'objet qui a provoqué le dépassement du seuil de 100 Ko).
HeapIndex win:UInt32 Segment de mémoire où l'objet a été alloué. Cette valeur est de 0 (zéro) lors d'une exécution avec le garbage collection pour station de travail.
Address win:Pointer Adresse du dernier objet alloué.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement GCCreateConcurrentThread_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)
ThreadingKeyword (0x10000) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCCreateConcurrentThread_V1 11 Un thread de garbage collection simultané a été créé.

Cet événement n’a pas de données d’événement.

Événement GCTerminateConcurrentThread_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)
ThreadingKeyword (0x10000) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCTerminateConcurrentThread_V1 12 Un thread de garbage collection simultané s'est terminé.

Cet événement n’a pas de données d’événement.

Événement GCFinalizersBegin_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCFinalizersBegin_V1 14 Début de l'exécution des finaliseurs.

Cet événement n’a pas de données d’événement.

Événement GCFinalizersEnd_V1

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCFinalizersEnd_V1 13 Fin de l'exécution des finaliseurs.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
Count win:UInt32 Nombre de finaliseurs exécutés.
ClrInstanceID win:UInt16 ID unique de l'instance de CLR ou CoreCLR.

Événement SetGCHandle

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCHandleKeyword (0x2) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
SetGCHandle 30 Un handle GC a été défini.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
HandleID win:Pointer L’adresse du handle alloué.
ObjectID win:Pointer L’adresse de l’objet dont le handle a été créé.
Kind win:UInt32 Le type de handle GC qui a été défini.

0x0 : WeakShort

0x1 : WeakLong

0x2 : Fort

0x3 : Épinglé

0x4 : Variable

0x5 : RefCounted

0x6 : Dépendant

0x7 : AsyncPinned

0x8 : SizedRef
Generation win:UInt32 La génération de l’objet dont le handle a été créé.
AppDomainID win:UInt64 L’ID AppDomain.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement DestroyGCHandle

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCHandleKeyword (0x2) Informatif (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
DestroyGCHandle 31 Un handle GC est détruit.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
HandleID win:Pointer L’adresse du handle détruit.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement PinObjectAtGCTime

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Détaillé (5)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
PinObjectAtGCTime 33 Un objet a été épinglé pendant un GC.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
HandleID win:Pointer L’adresse du handle.
ObjectID win:Pointer L’adresse de l’objet épinglé.
ObjectSize win:UInt64 La taille de l’objet épinglé.
TypeName win:UnicodeString Le nom du type de l’objet épinglé.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement GCTriggered

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Détaillé (5)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCTriggered 35 Un GC a été déclenché.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
Reason win:UInt32 La raison pour laquelle un GC a été déclenché.

0x0 : AllocSmall

0x1 : Induit

0x2 : LowMemory

0x3 : Vide

0x4 : AllocLarge

0x5 : OutOfSpaceSmallObjectHeap

0x6 : OutOfSpaceLargeObjectHeap

0x7 : InducedNoForce

0x8 : Stress

0x9 : InducedLowMemory
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement IncreaseMemoryPressure

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informations (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
IncreaseMemoryPressure 200 La pression de la mémoire a été augmentée.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement DecreaseMemoryPressure

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informations (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
DecreaseMemoryPressure 201 La pression sur la mémoire a été diminuée.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
BytesFreed win:UInt32 Octets libérés.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.

Événement GCMarkWithType

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Informations (4)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCMarkWithType 202 Une racine GC a été marquée pendant la phase de marquage GC.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
HeapNum win:UInt32 Le numéro du tas.
ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.
Type win:UInt32 Le type de racine GC.

0x0 : Pile

0x1 : Finaliseur

0x2 : Handle

0x3 : Plus ancien

0x4 : SizedRef

0x5 : Dépassement

Bytes win:UInt64 Le nombre d’octets marqués.

Événement GCJoin_V2

Le tableau suivant montre les mots clés et les niveaux.

Mot clé pour déclencher l'événement Level
GCKeyword (0x1) Détaillé (5)

Le tableau ci-dessous montre les informations liées aux événements.

Événement ID de l’événement Moment du déclenchement
GCJoin_V2 203 Un thread de GC joint.

Le tableau ci-dessous montre les données d’événements.

Nom du champ Type de données Description
Heap win:UInt32 Le numéro du tas
JoinTime win:UInt32 Indique si cet événement est déclenché au début d’une jointure ou à la fin d’une jointure (0x0 pour le début de la jointure, 0x1 pour la fin de la jointure)
JoinType win:UInt32 Type de jointure.

0x0 : Dernière jointure

0x1 : Jointure

0x2 : Redémarrage

0x3 : Première jointure inversée

0x4 : Jointure inversée

ClrInstanceID win:UInt16 ID unique de l’instance de CoreCLR.