Identificare i percorsi caldi con un grafico di fiamma (C#, Visual Basic, C++, F#)
Gli strumenti di profilatura di Visual Studio per l'utilizzo della CPU e la strumentazione includono la visualizzazione Flame Graph . Flame Graph consente di identificare i percorsi caldi nel codice visualizzando una visualizzazione dell'albero delle chiamate. Il percorso critico è lo stack di chiamate per le funzioni che usano la maggior parte della CPU o la maggior parte del tempo ed è spesso un buon posto per cercare potenziali ottimizzazioni delle prestazioni. Il grafico offre una panoramica visiva della posizione in cui viene impiegato il tempo nell'applicazione ed è possibile fare clic su nodi specifici per esplorarli ulteriormente.
Per un'esercitazione che illustra come migliorare le prestazioni usando il grafico di fiamma, vedere Case study: Guida per principianti all'ottimizzazione del codice. Per informazioni sul profiler cpu, vedere Analizzare le prestazioni usando la profilatura della CPU.
Analizzare i percorsi ad accesso frequente
La visualizzazione Flame Graph è nella visualizzazione dei dettagli del report con estensione diagession .
Avviare una sessione di profilatura con lo strumento Utilizzo CPU o Strumentazione.
Dopo aver arrestato la sessione di profilatura e il report viene caricato, selezionare Apri dettagli.
Selezionare Flame Graph (Grafico fiamma) nell'elenco a discesa Visualizzazione corrente.
Viene visualizzata la visualizzazione Grafico di fiamma.
Il percorso critico è il percorso del codice che usa la maggior parte della CPU o la maggior parte del tempo mentre si guarda verso il basso attraverso l'albero delle chiamate.
Per impostazione predefinita, i dati visualizzati in Flame Graph rappresentano gli stessi dati mostrati nella visualizzazione Albero delle chiamate per il periodo di raccolta dati. In particolare, per Utilizzo CPU vengono visualizzati i valori total CPU . Questo valore è inclusivo, quindi include l'utilizzo della CPU (ovvero il tempo di calcolo della CPU) usato dalle chiamate alla funzione e qualsiasi altra funzione chiamata dalla funzione. Nello stesso modo, per Strumentazione, il grafico mostra i valori equivalenti alla colonna Totale nella visualizzazione albero delle chiamate.
Tuttavia, se si seleziona un nodo, il nodo selezionato diventa la nuova linea di base e usa il 100% della larghezza del grafico di fiamma. In questo modo è possibile visualizzare meglio un albero delle chiamate complesso e visualizzare i nomi lunghi quando vengono troncati o nascosti. Di seguito è riportato un esempio di grafico di fiamma che mostra un albero delle chiamate più complesso.
Per visualizzare i dettagli su qualsiasi nodo, selezionare il nodo.
Scegliere Reimposta zoom per tornare alla visualizzazione predefinita.
È anche possibile passare a visualizzazioni diverse nel report di profilatura selezionando un nodo e quindi scegliendo un'opzione come Visualizza nell'albero delle chiamate dal menu di scelta rapida.
Capovolgi il grafico di fiamma
Per impostazione predefinita, il grafico della fiamma nello strumento viene visualizzato a capovolto o come grafico iciclo, in cui l'asse y conta la profondità dello stack verso il basso da zero nella parte superiore.
È possibile visualizzare un layout standard del grafico a fiamma facendo clic su Flip Flame Graph.You can view a standard flame chart layout by click Flip Flame Graph.
Spostarsi nel grafico di fiamma
Per un grafico di fiamma complesso, è possibile ingrandire la visualizzazione selezionando elementi specifici.
Nella visualizzazione Flame Graph è possibile spostarsi facendo clic su un nodo con un mouse o usando la tastiera. Sono inoltre supportati i tasti di scelta rapida seguenti.
Tasto di scelta rapida | Comando |
---|---|
Tab | Passare a qualsiasi nodo |
Freccia SU/GIÙ | Passare all'elemento padre o figlio di un nodo |
Freccia destra/sinistra | Passare al peer di un nodo nello stack |
INVIO | Zoom avanti (selezione) |
ESC | Zoom out |