MDA memberInfoCacheCreation
L'assistente al debug gestito memberInfoCacheCreation viene attivato in caso di creazione di una cache MemberInfo. Questa condizione potrebbe indicare che un programma sta utilizzando funzionalità di reflection che richiedono un uso intensivo delle risorse.
Sintomi
Il working set di un programma aumenta perché il programma sta utilizzando funzionalità di reflection che richiedono un uso intensivo delle risorse.
Causa
Le operazioni di reflection che coinvolgono oggetti MemberInfo sono considerate molto esigenti in termini di risorse poiché devono leggere i metadati archiviati nelle pagine meno recenti e indicano in genere che il programma sta utilizzando un tipo di scenario con associazione tardiva.
Risoluzione
È possibile determinare il punto del programma in cui viene utilizzata la funzionalità di reflection abilitando questo assistente al debug gestito ed eseguendo quindi il codice in un debugger o associando un debugger al momento dell'attivazione dell'assistente al debug gestito. In questo modo sarà possibile ottenere una traccia dello stack indicante la posizione in cui è stata creata la cache MemberInfo e da cui è possibile determinare il punto del programma in cui è utilizzata la funzionalità di reflection.
La soluzione dipende dagli obiettivi del codice. Questo assistente al debug gestito indica che il programma sta utilizzando uno scenario con associazione tardiva. In questo caso, è possibile analizzare le prestazioni di tale scenario oppure verificare se può essere sostituito con uno scenario con associazione anticipata.
Effetti su Common Language Runtime
Questo assistente al debug gestito viene attivato per ogni cache MemberInfo creata. L'impatto sulle prestazioni è trascurabile.
Output
L'assistente al debug gestito genera un messaggio che indica la creazione della cache MemberInfo. Utilizzare un debugger per ottenere una traccia dello stack in cui è indicato il punto del programma in cui è utilizzata la funzionalità di reflection.
Configurazione
<mdaConfig>
<assistants>
<memberInfoCacheCreation/>
</assistants>
</mdaConfig>
Esempio
Questo codice di esempio attiverà l'assistente al debug gestito memberInfoCacheCreation.
using System;
public class Exe
{
public static void Main()
{
typeof(object).GetMethods();
}
}
Vedere anche
Riferimenti
Concetti
Diagnostica degli errori tramite gli assistenti al debug gestito