Partager via


Assistant Débogage managé memberInfoCacheCreation

L'Assistant Débogage managé (MDA, Managed Debugging Assistant) memberInfoCacheCreation est activé lors de la création d'un cache MemberInfo. C'est généralement l'indication d'un programme qui utilise des fonctionnalités de réflexion coûteuses en ressources.

Symptômes

Le jeu de travail d'un programme augmente car le programme utilise la réflexion, coûteuse en ressources.

Cause

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

Solution

Vous pouvez déterminer l'endroit du programme qui utilise la réflexion en activant cet Assistant Débogage managé et en exécutant ensuite votre code dans un débogueur ou en attachant un débogueur lorsque l'Assistant Débogage managé est activé. Sous un débogueur, vous obtiendrez une trace de la pile montrant l'endroit où le cache MemberInfo a été créé et à partir de là, vous pouvez déterminer l'endroit 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 possède un scénario à liaison tardive. Vous pouvez souhaiter déterminer si vous pouvez le remplacer par un scénario à liaison anticipée ou prendre en compte 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 en sortie indiquant la création du cache MemberInfo. Utilisez un débogueur pour obtenir une trace de la pile indiquant l'endroit où votre programme utilise la réflexion.

Configuration

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

Exemple

Cet exemple de code activera l'Assistant Débogage managé memberInfoCacheCreation.

using System;

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

Voir aussi

Référence

MemberInfo

Concepts

Diagnostic d'erreurs avec les Assistants de débogage managés