Analizzare il percorso critico alla radice nello strumento Utilizzo memoria
Durante la profilatura del codice .NET nello strumento di profilatura utilizzo memoria in Visual Studio, il percorso caldo alla radice può aiutare a identificare gli oggetti conservati nell'heap che causano problemi di utilizzo della memoria. Nel contesto dell'utilizzo della memoria, il percorso critico è una catena di riferimenti identificata dal profiler che punta a un oggetto radice che rappresenta una potenziale origine di problemi di memoria.
Quando si calcolano le dimensioni inclusive di un oggetto (la quantità totale di memoria mantenuta nell'heap mantenendo attivo l'oggetto), è spesso utile ridurre il grafico dell'heap fortemente connesso in un albero. A differenza di un grafo, un nodo in un albero ha un numero arbitrario di figli, ma un solo padre. Invece di considerare ogni possibile percorso di radice per un oggetto, la scelta del percorso più probabile della radice tramite varie euristiche è in genere sufficiente per trovare la catena di riferimento che, se rimossa, renderà l'oggetto idoneo per l'operazione di Garbage Collection. Alcune di queste euristiche includono la priorità data al percorso più breve verso la radice, a determinati tipi di radice e ai percorsi del codice dell'utente. Per vari motivi, questa strategia non trova sempre la catena di conservazione più interessante o più lunga, ma spesso fornisce un punto di partenza utile in un'indagine sull'utilizzo della memoria.
Nell'albero Percorsi alla radice dello strumento Utilizzo memoria, il percorso alla radice con l'icona di fiamma () viene chiamato percorso caldo.
Esempio
Usare l'opzione Solo mostra percorsi attivi per filtrare la visualizzazione nel riquadro Percorsi verso la radice.
In questo esempio è presente un controllo WPF (AttachToProcess.Dialog
) che viene trapelato tramite un'associazione che viene infine radicata da un AutomationPeer
. Nella visualizzazione filtrata il percorso di conservazione è ovvio; è visibile solo il percorso diretto della radice.
Con l'opzione disabilitata, diventa chiaro che ci sono centinaia di legami e la maggior parte dei percorsi di espansione porta a vicoli ciechi che si ripetono. Senza l'indicatore visivo, è tedioso passare al setaccio migliaia di potenziali percorsi di conservazione per trovare un possibile motivo della perdita.
Vedere anche
Per altre informazioni sullo strumento Utilizzo memoria di Visual Studio, vedere