Partager via


Événements ETW de garbage collection

Ces événements collectent des informations relatives au garbage collection. Ils aident dans 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 pendant le garbage collection, et ainsi de suite.

Cette catégorie se compose des événements suivants :

événement GCStart_V1

Le tableau suivant montre le mot clé et le niveau. Pour plus d’informations, consultez mots clés et niveaux CLR ETW.

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCStart_V1 1 Un garbage collection a démarré.

Le tableau suivant présente les données d’événement :

Nom du champ Type de données Description
Compter win :UInt32 Le nième garbage collection.
Profondeur win :UInt32 Génération en cours de collecte.
Raison win :UInt32 Pourquoi le garbage collection a été déclenché :

0x0 - Allocation de tas d’objets de petite taille.

0x1 - induit.

0x2 - Mémoire faible.

0x3 - Vide.

0x4 - Allocation de tas d’objets volumineux.

0x5 - Dehors de l’espace (pour le tas d’objets de petite taille).

0x6 - Espace insuffisant (pour le tas d’objets volumineux).

0x7 - induit mais pas forcé comme bloquant.

0x8 - Test de contrainte.

0x9 - Le thread finaliseur observé que le processus est en mémoire faible et a provoqué un GC.

0x10 - Le code utilisateur a induit gc et demandé qu’il soit un GC compacté.
Type win :UInt32 0x0 : le blocage du garbage collection s’est produit en dehors du garbage collection en arrière-plan.

0x1 - Garbage collection d’arrière-plan.

0x2 : le blocage du garbage collection s’est produit pendant le garbage collection en arrière-plan.
ClrInstanceID win :UInt16 ID unique pour l’instance de CLR ou CoreCLR.

événement GCEnd_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCEnd_V1 2 Le garbage collection a pris fin.

Le tableau suivant présente les données d’événement :

Nom du champ Type de données Description
Compter win :UInt32 Le nième garbage collection.
Profondeur win :UInt32 Génération qui a été collectée.
ClrInstanceID win :UInt16 ID unique pour l’instance de CLR ou CoreCLR.

événement GCHeapStats_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Description
GCHeapStats_V1 4 Affiche les statistiques de tas à la fin de chaque garbage collection.

Le tableau suivant présente les données d’événement :

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 qui ont survécu à la génération 2 après la dernière collection.
GenerationSize3 win :UInt64 Taille, en octets, du tas d’objets volumineux.
TotalPromotedSize3 win :UInt64 Nombre d’octets qui ont survécu dans le tas d’objets volumineux après la dernière collection.
FinalizationPromotedSize win :UInt64 Taille totale, en octets, des objets prêts à être finalisés.
FinalizationPromotedCount win :UInt64 Nombre d’objets prêts à être finalisés.
PinnedObjectCount win :UInt32 Nombre d’objets épinglés (inmovables).
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 pour l’instance de CLR ou CoreCLR.

événement GCHeapStats_V2

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

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

Le tableau suivant présente les données d’événement :

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 qui ont survécu à la génération 2 après la dernière collection.
GenerationSize3 win :UInt64 Taille, en octets, du tas d’objets volumineux.
TotalPromotedSize3 win :UInt64 Nombre d’octets qui ont survécu dans le tas d’objets volumineux après la dernière collection.
FinalizationPromotedSize win :UInt64 Taille totale, en octets, des objets prêts à être finalisés.
FinalizationPromotedCount win :UInt64 Nombre d’objets prêts à être finalisés.
PinnedObjectCount win :UInt32 Nombre d’objets épinglés (inmovables).
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 pour l’instance de CLR ou CoreCLR.
GenerationSize4 win :UInt64 Taille, en octets, du tas d’objets épinglés.
TotalPromotedSize4 win :UInt64 Nombre d’octets qui ont survécu dans le tas d’objets épinglés après la dernière collection.

événement GCCreateSegment_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

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

Le tableau suivant présente les données d’événement :

Nom du champ Type de données Description
Adresse win :UInt64 Adresse du segment.
Taille win :UInt64 Taille du segment.
Type win :UInt32 0x0 - Tas d’objets de petite taille.

0x1 - Tas d’objets volumineux.

0x2 - Tas en lecture seule.
ClrInstanceID win :UInt16 ID unique pour l’instance de CLR ou CoreCLR.

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

événement GCFreeSegment_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCFreeSegment_V1 6 Un segment de garbage collection a été libéré.

Le tableau suivant présente les données d’événement :

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

événement GCRestartEEBegin_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCRestartEEBegin_V1 7 La reprise de la suspension du Common Language Runtime a commencé.

Aucune donnée d’événement.

événement GCRestartEEEnd_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCRestartEEEnd_V1 3 La reprise de la suspension du Common Language Runtime a pris fin.

Aucune donnée d’événement.

événement GCSuspendEE_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCSuspendEE_V1 9 Début de la suspension du moteur d’exécution pour le garbage collection.

Le tableau suivant présente les données d’événement :

Nom du champ Type de données Description
Raison win :UInt16 0x0 - Autre.

0x1 - Garbage collection.

0x2 - Arrêt du domaine d’application.

0x3 - Pitching de code.

0x4 - Arrêt.

0x5 - Débogueur.

0x6 - Préparation du garbage collection.
Compter win :UInt32 Nombre de gcs à l’heure. En règle générale, vous verrez un événement gc Start ultérieur après cela, et son nombre est ce nombre + 1, car nous augmentons l’index GC pendant un garbage collection.
ClrInstanceID win :UInt16 ID unique pour l’instance de CLR ou CoreCLR.

événement GCSuspendEEEnd_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCSuspendEEEnd_V1 8 Fin de la suspension du moteur d’exécution pour le garbage collection.

Aucune donnée d’événement.

événement GCAllocationTick_V2

Le tableau suivant présente le mot clé et le niveau :

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

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCAllocationTick_V2 10 Chaque fois qu’environ 100 Ko sont alloués par tas d’objets. Autrement dit, SOH, LOH et POH accumulent séparément leurs octets alloués. Dans le serveur GC, cette opération est effectuée par segment de mémoire.

Le tableau suivant présente les données d’événement :

Nom du champ Type de données Description
AllocationAmount win :UInt32 Taille d’allocation, en octets. Cette valeur est précise 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 des allocations très volumineuses.
AllocationKind win :UInt32 0x0 - Allocation de petits objets (l’allocation se trouve dans le tas d’objets de petite taille).
0x1 - Allocation d’objets volumineux (l’allocation se trouve dans le tas d’objets volumineux).
0x2 - Allocation d’objets épinglés (l’allocation est dans le tas d’objets épinglé).
ClrInstanceID win :UInt16 ID unique pour l’instance de CLR ou CoreCLR.
AllocationAmount64 win :UInt64 Taille d’allocation, en octets. Cette valeur est précise pour les allocations très volumineuses.
TypeId win :Pointer Adresse de MethodTable. Lorsqu’il existe plusieurs types d’objets qui ont été alloués pendant 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 qui a été alloué. Lorsqu’il existe plusieurs types d’objets qui ont été alloués pendant 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 Tas où l’objet a été alloué. Cette valeur est 0 (zéro) lors de l’exécution avec le garbage collection de station de travail.

événement GCAllocationTick_V3

Le tableau suivant présente le mot clé et le niveau :

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

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCAllocationTick_V2 10 Chaque fois qu’environ 100 Ko sont alloués par tas d’objets. Autrement dit, SOH, LOH et POH accumulent séparément leurs octets alloués. Dans le serveur GC, cette opération est effectuée par segment de mémoire.

Le tableau suivant présente les données d’événement :

Nom du champ Type de données Description
AllocationAmount win :UInt32 Taille d’allocation, en octets. Cette valeur est précise 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 des allocations très volumineuses.
AllocationKind win :UInt32 0x0 - Allocation de petits objets (l’allocation se trouve dans le tas d’objets de petite taille).
0x1 - Allocation d’objets volumineux (l’allocation se trouve dans le tas d’objets volumineux).
0x2 - Allocation d’objets épinglés (l’allocation est dans le tas d’objets épinglé).
ClrInstanceID win :UInt16 ID unique pour l’instance de CLR ou CoreCLR.
AllocationAmount64 win :UInt64 Taille d’allocation, en octets. Cette valeur est précise pour les allocations très volumineuses.
TypeId win :Pointer Adresse de MethodTable. Lorsqu’il existe plusieurs types d’objets qui ont été alloués pendant 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 qui a été alloué. Lorsqu’il existe plusieurs types d’objets qui ont été alloués pendant 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 Tas où l’objet a été alloué. Cette valeur est 0 (zéro) lors de l’exécution avec le garbage collection de station de travail.
Adresse win :Pointer Adresse du dernier objet alloué.

événement GCFinalizersBegin_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCFinalizersBegin_V1 14 Début de l’exécution des finaliseurs.

Aucune donnée d’événement.

événement GCFinalizersEnd_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCFinalizersEnd_V1 13 Fin des finaliseurs en cours d’exécution.

Le tableau suivant présente les données d’événement :

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

événement GCCreateConcurrentThread_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)
ThreadingKeyword (0x10000) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCCreateConcurrentThread_V1 11 Le thread de garbage collection simultané a été créé.

Aucune donnée d’événement.

événement GCTerminateConcurrentThread_V1

Le tableau suivant présente le mot clé et le niveau :

Mot clé pour déclencher l’événement Niveau
GCKeyword (0x1) Information (4)
ThreadingKeyword (0x10000) Information (4)

Le tableau suivant présente les informations d’événement :

Événement ID d’événement Déclenché quand
GCTerminateConcurrentThread_V1 12 Le thread de garbage collection simultané a été arrêté.

Aucune donnée d’événement.

Voir aussi