Condividi tramite


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.

Screenshot che mostra Flame Graph con il menu di scelta rapida visualizzato.

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 .

  1. Avviare una sessione di profilatura con lo strumento Utilizzo CPU o Strumentazione.

  2. Dopo aver arrestato la sessione di profilatura e il report viene caricato, selezionare Apri dettagli.

    Screenshot che mostra l'opzione Apri dettagli selezionata.

  3. Selezionare Flame Graph (Grafico fiamma) nell'elenco a discesa Visualizzazione corrente.

    Screenshot che mostra la visualizzazione Flame Graph selezionata.

    Viene visualizzata la visualizzazione Grafico di fiamma.

    Screenshot che mostra la panoramica di Flame Graph visualizzata.

    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.

    Screenshot che mostra Flame Graph per un albero delle chiamate 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.

    Screenshot che mostra l'opzione Flame Graph da visualizzare nell'albero delle chiamate.

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.

Screenshot che mostra l'opzione Flip Flame Graph selezionata.

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