É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’autres0x1 : 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 : Variable0x5 : RefCounted 0x6 : Dépendant0x7 : AsyncPinned0x8 : 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 : AllocSmall0x1 : 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 : Pile0x1 : Finaliseur0x2 : Handle0x3 : Plus ancien0x4 : SizedRef0x5 : 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 jointure0x1 : Jointure 0x2 : Redémarrage 0x3 : Première jointure inversée0x4 : Jointure inversée |
ClrInstanceID |
win:UInt16 |
ID unique de l’instance de CoreCLR. |