Condividi tramite


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

MemberInfo

Concetti

Diagnostica degli errori tramite gli assistenti al debug gestito