Filtrare il grafico a fiamme

Cloud Profiler ti consente di aggiungere filtri per controllare la modalità di visualizzazione delle informazioni nei profili selezionati. Ad esempio, puoi aggiungere un filtro per nascondere o stack di chiamate specifici. L'aggiunta e la rimozione di filtri non modifica l'insieme di profili selezionati.

Ogni filtro è specificato da un FILTER-OPTION predefinito accoppiato con un FILTER-OPTION definito dall'utente:

[FILTER-OPTION] : [VALUE]

Ogni filtro aggiunto viene visualizzato nella barra dei filtri. In questo esempio, esiste un filtro che mostra Metric : Bytes:

Mostra un filtro con la possibilità di scegliere la metrica e il valore in byte.

Profiler crea automaticamente un filtro con un valore FILTER-OPTION di Metric e un VALUE in base al tipo di profilo selezionato. Puoi modificare VALUE per alcuni tipi di profilo. Non puoi rimuovere questo filtro.

Per aggiungere un filtro, utilizza uno dei seguenti metodi:

  • Fai clic su Filtri e seleziona un'opzione dall'elenco e inserisci il valore.
  • Fai clic sul testo grigio Aggiungi filtro dati del profilo nel filtro. barra, quindi inserisci l'opzione e il valore del filtro.
  • Per le opzioni di filtro Messa a fuoco, Mostra dal frame e Mostra serie, puoi anche posizionare il puntatore sul frame, quindi selezionare dalla descrizione comando del frame.

Per rimuovere un filtro, fai clic su Chiudi sul filtro.

Quando prepara i dati da visualizzare, Profiler cerca corrispondenze tra un frame e un filtro. Quando si verifica una corrispondenza, Profiler usa FILTER-OPTION per determinare quale azione eseguire. Un frame corrisponde al filtro quando il frame il nome della funzione o il nome file dell'origine della funzione contiene VALUE. Viene eseguito un confronto sensibile alle maiuscole. Ad esempio, se il filtro è Hide frames : oo, i frame con funzioni denominate foo, foo1 e busyloop vengono nascosti nel grafico a forma di fiamma.

Metrica

Per impostare la modalità di aggregazione del tipo di profilo, utilizza il filtro Metrica. Ad esempio, se selezioni un tipo di profilo Heap, hai la possibilità di visualizzare i dati in termini di byte e oggetti.

Le opzioni disponibili per il filtro Metrica dipendono dal linguaggio di programmazione e dal Tipo di profilo selezionato:

  • Per i profili Tempo CPU, l'unica scelta è Tempo CPU.
  • Per i profili heap, le opzioni sono:

    • Byte
    • Oggetti
  • Per i profili Allocato Heap, le opzioni sono:

    • Byte alloc totali
    • Totale oggetti allocati
  • Per i profili Ora standard, le opzioni sono:

    • Numero
    • Tempo totale di esecuzione
  • Per i profili Thread, l'unica scelta è Goroutine.

  • Per i profili Concorrenza, le opzioni sono:

    • Ritardo
    • Controversie

Per ulteriori informazioni sui tipi di metriche di profilazione, consulta Concetti di profilazione.

Ad esempio, il seguente screenshot mostra il consumo di CPU di un programma:

Grafico del profiler per l'utilizzo della CPU

Qui puoi vedere che la routine busyloop chiama foo1 e foo2, entrambe le quali chiamano varie altre routine. Puoi aggiungere filtri a ulteriori limita il grafico ai soli dati di interesse.

Evidenzia

Quando utilizzi il filtro Messaggio in primo piano, selezioni una singola funzione e il grafico a forma di fiamma mostra i percorsi di codice che passano dentro e fuori da quella funzione specifica.

Per i dettagli su come perfezionare il grafico e interpretare i risultati, consulta la sezione Messa a fuoco del grafico a fiamme.

Mostra stack

Per visualizzare tutti gli stack di chiamate che contengono un frame corrispondente al valore del filtro e per nascondere tutti gli altri stack di chiamate, utilizza il filtro Mostra stack. Il grafico mostra gli elementi chiamanti e chiamati della funzione, ovvero tutto ciò che chiama la funzione corrispondente e tutto ciò che chiama.

Questo filtro esegue un test delle sottostringhe sensibili alle maiuscole. Una corrispondenza si verifica se la funzione frame contiene il valore del filtro.

Per limitare il grafico di utilizzo della CPU dell'esempio precedente in modo che mostri solo stack di chiamate che coinvolgono la funzione foo1, imposta un Mostra filtri simili per foo1:

Grafico Profiler per l'utilizzo della CPU filtrato in base agli stack del programma

Nascondi stack

Nascondi tutti gli stack di chiamate contenenti un frame che corrisponde al valore del filtro. Questo è spesso utile quando vuoi nascondere elenchi non interessanti. Ad esempio, con le applicazioni Java è comune aggiungere un filtro Hide stacks: unsafe.park.

Questo filtro esegue un test di sottostringa sensibile alle maiuscole. Una corrispondenza si verifica se la funzione frame contiene il valore del filtro.

Mostra da frame

Per visualizzare tutti gli stack di chiamate, a partire dal frame corrisponde al valore del filtro e per nascondere tutti gli altri stack di chiamate, utilizza Filtro Mostra dal frame. Il grafico risultante mostra le chiamate vengono raggruppate dalla funzione con nome in basso. Questo filtro è utile se la funzione viene chiamata da molti luoghi e vuoi visualizzare il consumo totale attribuibile.

Ad esempio, per visualizzare solo le chiamate provenienti dalla funzione baz, imposta un filtro Mostra da frame per baz:

Grafico Profiler per l'utilizzo della CPU filtrato con "Mostra dal frame"

Questo filtro esegue un test di sottostringa sensibile alle maiuscole. Si verifica una corrispondenza se la funzione frame contiene il valore del filtro.

Nascondi frame

Per nascondere dalla visualizzazione tutti i frame che corrispondono al valore del filtro, utilizza il metodo Filtro Nascondi frame. Il grafico mostra i chiamanti della funzione, e tutti i calli della funzione sono raccolti insieme. Questo filtro è utile per rimuovere dal grafico i frame non pertinenti.

Ad esempio, per nascondere i frame sia per foo1 sia per foo2, imposta un valore Filtro Nascondi frame per foo. foo1 e foo2 corrispondono, quindi entrambi vengono rimosse dal grafico. Poiché entrambe chiamano le routine bar e baz, i dati di ciascuna di queste funzioni vengono aggregati.

Grafico del profiler per l'utilizzo della CPU filtrato con i frame nascosti

Questo filtro esegue un test delle sottostringhe sensibili alle maiuscole. Una corrispondenza si verifica se la funzione frame contiene il valore del filtro.

Evidenzia

Per evidenziare tutti i frame i cui nomi delle funzioni corrispondono al valore del filtro, utilizza la Filtro In evidenza. La funzione rimane in modalità di colore normale, ma le sequenze di chiamata sono colorate in tonalità più tenui.

Ad esempio, ecco un grafico senza evidenziazioni:

Grafico di profilazione senza evidenziazioni

Ecco lo stesso grafico con l'evidenziazione richiesta per la funzione baz:

Grafico del profilo con evidenziazione

Questo filtro esegue un test di sottostringa sensibile alle maiuscole. Si verifica una corrispondenza se la funzione frame contiene il valore del filtro.

Modalità colore

Per impostazione predefinita, il colore del frame corrisponde, se possibile, al pacchetto della funzione. Se le informazioni sul pacchetto non sono disponibili, come in Node.js, i nomi dei file di origine vengono utilizzati per colorare i blocchi di funzioni. Con l'impostazione predefinita, una modifica in una chiamata il colore dello stack frame indica una transizione da un pacchetto all'altro. Il valore predefinito corrisponde al filtro Modalità colore con il valore Nome.

Per colorare le frame nel grafico a forma di fiamma in base al consumo di una funzione e dei relativi elementi secondari, aggiungi un filtro Modalità di colore con il valore Totale. Se una funzione viene chiamata tramite più stack di chiamate, il colore viene determinato dal consumo della metrica per tutti gli stack di chiamate. Ad esempio, main e busyloop sono di colore rosso. Questi due frame consumano il massimo tempo di CPU. I frame con etichetta foo2 e baz sono di colore arancione scuro, mentre il frame con l'etichetta foo1 è di colore arancione più chiaro. I frame per bar e load sono i più leggeri. Questo grafico a forma di fiamma mostra che foo2 consuma più tempo della CPU rispetto a foo1, ma meno di busyloop:

Totale modalità colore

Per colorare i frame nel grafico a forma di fiamma in base al consumo metrico della funzione, ma escludere il consumo metrico dei relativi elementi secondari, aggiungete un filtro Modalità di colore con il valore Auto. Ad esempio, questo filtro mostra che la funzione baz consuma più tempo di CPU di qualsiasi altra funzione:

Modalità colore auto

Passaggi successivi