Filtrare il grafico a fiamme

Cloud Profiler consente di aggiungere filtri per controllare il modo in cui vengono visualizzate le informazioni nei profili selezionati. Ad esempio, puoi aggiungere un filtro per nascondere frame 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 abbinato a 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:

Mostra un filtro con l'opzione di metrica e valore di byte.

Profiler crea automaticamente un filtro con FILTER-OPTION pari a Metric e 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 approcci:

  • Fai clic su Filtri , seleziona un'opzione dall'elenco e inserisci il valore.
  • Fai clic sul testo grigio Aggiungi filtro dati profilo nella barra dei filtri, quindi inserisci l'opzione e il valore del filtro.
  • Per le opzioni di filtro Stato attivo, Mostra dal frame e Mostra stack, puoi anche posizionare il puntatore sul frame e poi selezionare l'opzione dalla descrizione comando del frame.

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

Durante la preparazione dei dati da visualizzare, Profiler cerca le 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 del frame 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 dal grafico a fiamme.

Metrica

Per impostare la modalità di aggregazione del tipo di profilo, utilizza il filtro Metrica. Ad esempio, se selezioni un tipo di profilo heap, puoi scegliere se 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 di 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 totali allocati
    • Totale oggetti allocati
  • Per i profili Tempo totale, le opzioni sono:

    • Numero
    • Tempo complessivo
  • Per i profili Thread, l'unica scelta è Goroutine.

  • Per i profili Contention, le opzioni sono:

    • Ritardo
    • Contese

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

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

Grafico Profiler per l'utilizzo della CPU

Qui puoi vedere che la routine busyloop chiama foo1 e foo2, che chiamano entrambe altre routine diverse. Potete aggiungere filtri per limitare ulteriormente il grafico ai soli dati di interesse.

Evidenzia

Quando utilizzi il filtro Stato attivo, selezioni una singola funzione e il grafico a fiamme mostra i percorsi di codice che confluiscono all'interno e all'esterno di quella funzione specifica.

Per informazioni dettagliate su come mettere a fuoco il grafico e interpretare i risultati, consulta la sezione Concentrazione del grafico a fiamme.

Mostra stack

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

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

Per limitare il grafico di utilizzo della CPU dell'esempio precedente in modo da mostrare solo gli stack di chiamate che interessano la funzione foo1, imposta un filtro Mostra stack per foo1:

Grafico Profiler per l'utilizzo della CPU filtrato in base agli stack di visualizzazione

Nascondi stack

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

Questo filtro esegue un test delle sottostringhe 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 che corrisponde 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 basso. Questo filtro è utile se la funzione viene richiamata da più luoghi e vuoi visualizzare il consumo totale attribuibile a questa funzione.

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

Grafico del profiler per l'utilizzo della CPU filtrato con visualizzazione dal frame

Questo filtro esegue un test delle sottostringhe 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 filtro Nascondi frame. Il grafico mostra i chiamanti della funzione e tutti i chiamanti della funzione vengono 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 filtro Nascondi frame per foo. Sia foo1 che foo2 corrispondono, pertanto vengono rimossi entrambi dal grafico. Poiché entrambe chiamano le routine bar e baz, i dati di ciascuna di queste funzioni vengono aggregati.

Grafico Profiler per l'utilizzo della CPU filtrato con frame nascosti

Questo filtro esegue un test delle sottostringhe 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 delle funzioni corrispondono al valore del filtro, utilizza il filtro Evidenzia. La funzione rimane in modalità colore normale, ma le sequenze di chiamata vengono colorate in toni più attenuati.

Ad esempio, di seguito è riportato un grafico senza evidenziazione:

Grafico di profilazione senza evidenziazione

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

Grafico di profilazione con evidenziazione

Questo filtro esegue un test delle sottostringhe 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, dove possibile, al pacchetto della funzione. Se le informazioni sui pacchetti non sono disponibili, come nel caso di Node.js, i nomi dei file di origine vengono utilizzati per colorare i blocchi funzione. Con l'impostazione predefinita, la modifica del colore del frame dello stack di chiamate indica una transizione da un pacchetto all'altro. L'opzione predefinita corrisponde al filtro Modalità colore con il valore Nome.

Per colorare i frame nel grafico a fiamme in base al consumo di una funzione e ai relativi elementi secondari, aggiungi un filtro Modalità colore con il valore Totale. Se una funzione viene richiamata tramite più stack di chiamate, il colore è determinato dal consumo delle metriche per tutti gli stack di chiamate. Ad esempio, main e busyloop sono di colore rosso. Questi due frame consumano la maggior parte del tempo di CPU. I frame etichettati foo2 e baz sono di un arancione scuro, mentre il frame etichettato foo1 è di un arancione più chiaro. I frame di bar e load sono i più leggeri. Questo grafico a fiamme mostra che foo2 consuma più tempo CPU di foo1, ma meno di busyloop:

Totale modalità colore

Per colorare i frame nel grafico a fiamme in base al consumo delle metriche della funzione, ma escludere il consumo delle metriche degli elementi secondari, aggiungi un filtro Modalità colore con il valore Self. Ad esempio, questo filtro mostra che la funzione baz consuma più tempo di CPU rispetto a qualsiasi altra funzione:

Modalità colore personale

Passaggi successivi