Percorsi ad accesso frequente alla radice nello strumento Utilizzo memoria (C#, Visual Basic, C++, F#)

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 grafico, un nodo in un albero ha arbitrariamente molti elementi figlio, ma solo un singolo elemento 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à del percorso più breve alla radice, a determinati tipi radice e ai percorsi del codice 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.

Nel grafico di riferimento dello strumento Utilizzo memoria il percorso alla radice è il "percorso critico alla radice".

Esempio

In questo esempio è presente un controllo WPF (AttachToProcess.Dialog) che viene trapelato tramite un'associazione che viene infine radicata da un oggetto AutomationPeer. Nella visualizzazione filtrata questo percorso di conservazione è ovvio; è visibile solo il percorso diretto della radice.

Screenshot del grafico Percorsi a radice dei riferimenti. Mostra solo i percorsi ad accesso frequente è selezionato, evidenziando una catena lineare di riferimenti.

Con l'opzione disabilitata, diventa chiaro che ci sono centinaia di associazioni e la maggior parte dei percorsi di espansione porta a terminazioni non recapitabili quel ciclo. Senza l'indicatore visivo, è noioso ordinare attraverso migliaia di potenziali percorsi di conservazione per trovare un motivo candidato per la perdita. Screenshot dello stesso grafico di riferimento Percorsi alla radice, ma Mostra percorsi ad accesso frequente è deselezionato solo con molte possibili terminazioni non recapitabili visibili.

Vedi anche

Per altre informazioni sullo strumento Utilizzo memoria di Visual Studio, vedere