Partager via


Assistant Débogage managé memberInfoCacheCreation

Remarque

Cet article est spécifique au .NET Framework. Elle ne s’applique pas aux implémentations plus récentes de .NET, notamment .NET 6 et versions ultérieures.

L’Assistant Débogage managé memberInfoCacheCreation est activé quand le cache MemberInfo est créé. Il s’agit d’une indication forte d’un programme qui utilise des fonctionnalités de réflexion coûteuses en ressources.

Symptômes

La plage de travail d’un programme augmente, car il utilise une réflexion coûteuse en ressources.

Cause

Les opérations de réflexion qui impliquent des objets MemberInfo sont considérées comme coûteuses en ressources, car elles doivent lire les métadonnées stockées dans des pages peu consultées et elles indiquent généralement que le programme utilise un type de scénario à liaison tardive.

Résolution

Vous pouvez déterminer où la réflexion est utilisée dans votre programme en activant cet Assistant Débogage managé puis en exécutant votre code dans un débogueur, ou en effectuant un attachement avec un débogueur quand l’Assistant Débogage managé est activé. Avec un débogueur, vous obtenez une arborescence des appels de procédure indiquant où le cache MemberInfo a été créé et, à partir de là, vous pouvez déterminer où votre programme utilise la réflexion.

La résolution dépend des objectifs du code. Cet Assistant Débogage managé vous avertit que votre programme a un scénario à liaison tardive. Vous pouvez alors déterminer si vous pouvez substituer un scénario à liaison anticipée ou considérer les performances du scénario à liaison tardive.

Effet sur le runtime

Cet Assistant Débogage managé est activé pour chaque cache MemberInfo créé. L’impact sur les performances est négligeable.

Sortie

L’Assistant Débogage managé génère un message indiquant que le cache MemberInfo a été créé. Pour obtenir une arborescence des appels de procédure montrant l’endroit où votre programme utilise la réflexion, utilisez un débogueur.

Configuration

<mdaConfig>
  <assistants>
    <memberInfoCacheCreation/>
  </assistants>
</mdaConfig>

Exemple

Cet exemple de code active l’Assistant Débogage managé memberInfoCacheCreation.

using System;

public class Exe
{
    public static void Main()
    {
        typeof(object).GetMethods();
    }
}

Voir aussi