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
:
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 filter_list 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 close 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:
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
:
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
:
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.
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:
Ecco lo stesso grafico con l'evidenziazione richiesta per la funzione baz
:
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
:
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:
Passaggi successivi
- Concentra il grafico a fiamme su una funzione.
- Visualizza le tendenze storiche.
- Confronta i profili.
- Scarica i dati del profilo.