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 determinati frame o stack di chiamate. 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 VALUE
definito dall'utente:
[FILTER-OPTION] : [VALUE]
Ogni filtro aggiunto viene visualizzato nella barra dei filtri.
In questo esempio, è presente 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, seleziona un'opzione dall'elenco e poi inserisci il valore.
- Fai clic sul testo grigio Aggiungi filtro dati del profilo nella barra di filtro, quindi inserisci l'opzione e il valore del filtro.
- Per le opzioni di filtro Metti a fuoco, Mostra dal frame e Mostra serie, puoi anche posizionare il cursore sul frame e selezionare l'opzione dalla relativa descrizione comando.
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 utilizza FILTER-OPTION
per determinare quale azione eseguire. Un frame corrisponde al filtro quando il nome della funzione o il nome del 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 Heap allocato, le opzioni sono:
- Byte alloc totali
- Total alloc objects
Per i profili Ora standard, le opzioni sono:
- Conteggio
- 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, lo screenshot seguente mostra il consumo della 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 per limitare ulteriormente il grafico solo ai dati di tuo interesse.
Evidenzia
Quando utilizzi il filtro Messaggio in primo piano, seleziona 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 informazioni dettagliate su come mettere a fuoco il grafico e interpretare i risultati, consulta Usare il filtro Imposta stato attivo nel 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 di corrispondenza e tutto ciò che chiama.
Questo filtro esegue un test di sottostringa sensibile alle maiuscole. Si verifica una corrispondenza se la funzione frame contiene il valore del filtro.
Per limitare il grafico dell'utilizzo della CPU dell'esempio precedente in modo che mostri solo le
piastre di chiamata che coinvolgono la funzione foo1
, imposta un
filtro Mostra pile per foo1
:
Nascondi stack
Nasconde tutti gli stack di chiamate che contengono un frame corrispondente al valore del filtro. Questo
filtro è spesso utile quando vuoi nascondere serie 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. Si verifica una corrispondenza se la funzione frame contiene il valore del filtro.
Mostra da frame
Per visualizzare tutti gli stack di chiamate, a partire dal frame corrispondente al valore del filtro e per nascondere tutti gli altri stack di chiamate, utilizza il filtro Mostra dal frame. Il grafico risultante mostra gli stack di chiamate dalla funzione con nome in giù. 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 tutti i frame corrispondenti al valore del filtro, utilizza il filtro Nascondi frame. Il grafico mostra gli utenti che chiamano la funzione e gli eventuali utenti chiamati dalla funzione vengono raccolti insieme. Questo filtro è utile per rimuovere dal grafico i frame non pertinenti.
Ad esempio, per nascondere i frame sia per foo1
che per foo2
, imposta un
filtro Nascondi frame per foo
. Sia foo1
che foo2
corrispondono, pertanto entrambi vengono rimossi dal grafico. Poiché entrambe chiamano le routine bar
e baz
, i dati di ciascuna di queste funzioni vengono aggregati.
Questo filtro esegue un test di sottostringa sensibile alle maiuscole. Si verifica una corrispondenza se la funzione frame contiene il valore del filtro.
Evidenzia
Per evidenziare tutti i frame i cui nomi funzione corrispondono al valore del filtro, utilizza il filtro Evidenziare. La funzione rimane in modalità di colore normale, ma le sequenze di chiamata sono colorate in tonalità più tenui.
Ad esempio, di seguito è riportato 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 del colore del frame della pila di chiamate indica una transizione da un pacchetto all'altro. L'opzione predefinita corrisponde al filtro Modalità a colori con un 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 colorati in rosso. Questi due frame consumano
la maggior parte del tempo della CPU. I frame etichettati foo2
e baz
sono di colore arancione scuro, mentre il frame etichettato 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, aggiungi 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.