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();
}
}