Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Filtro del grafico a fiamme

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

Ogni filtro è specificato da un elemento FILTER-OPTION predefinito associato a un VALUE definito dall'utente:

[FILTER-OPTION] : [VALUE]

Ogni filtro che aggiungi viene visualizzato sulla barra dei filtri. In questo esempio, c'è un filtro che mostra Metric : Bytes:

Mostra un filtro con l'opzione della metrica e il valore dei byte.

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

Per aggiungere un filtro, utilizza uno dei seguenti approcci:

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

Per rimuovere un filtro, fai clic su Chiudi .

Durante la preparazione dei 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 frame o l'origine della funzione contiene VALUE. Viene eseguito un confronto tra maiuscole e minuscole. Ad esempio, se il filtro è Hide frames : oo, i frame con funzioni denominate foo, foo1 e busyloop corrispondono verranno 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 Tempo CPU, l'unica scelta è Tempo CPU.
  • Per i profili Heap, le opzioni sono:

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

    • Totale byte alloca
    • Totale oggetti alloca
  • Per i profili Wall, le opzioni sono le seguenti:

    • Conteggio
    • Ora di Wally
  • Per i profili Thread, l'unica scelta è Goroutine.

  • Per i profili Contention, le opzioni sono:

    • Ritardo
    • Contestazioni

Per ulteriori informazioni sui tipi di metriche di profilazione, consulta la sezione 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 che richiamano varie altre routine. Puoi aggiungere filtri per limitare ulteriormente il grafico ai soli dati di interesse.

Evidenzia

Quando utilizzi il filtro Messa a fuoco, selezioni una singola funzione e il grafico a fiamme mostra i percorsi del codice che entrano e escono da quella specifica funzione.

Per informazioni dettagliate su come mettere a fuoco 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 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 di sottostringa sensibile alle maiuscole. Si verifica una corrispondenza se la funzione frame contiene il valore del filtro.

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

Grafico del profiler per l'utilizzo della CPU filtrato con show stack

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 gli stack 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 che corrisponde al valore del filtro e 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 chiamata da più punti e vuoi visualizzare il consumo totale attribuibile a tale funzione.

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

Grafico del profiler per l'utilizzo della CPU filtrato con visualizzazione 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 tutti i frame che corrispondono al valore del filtro, utilizza il filtro Nascondi frame. Il grafico mostra i chiamanti della funzione e gli eventuali chiamanti vengono raccolti insieme. Questo filtro è utile per rimuovere i frame non pertinenti dal grafico.

Ad esempio, per nascondere i frame sia per foo1 che per foo2, imposta un filtro Nascondi frame per foo. Sia foo1 sia foo2 corrispondono, pertanto vengono rimossa 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 nascondi frame

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 di funzione corrispondono al valore del filtro, utilizza il filtro Evidenzia. La funzione rimane in modalità colore normale, ma le sequenze di chiamata vengono colorate in tonalità più tenui.

Ad esempio, di seguito viene 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 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, ove possibile, al pacchetto della funzione. Se le informazioni sul pacchetto non sono disponibili, come con Node.js, i nomi dei file di origine vengono utilizzati per colorare i blocchi funzione. Con l'impostazione predefinita, una modifica al colore di un frame dello stack di chiamata comporta la transizione da un pacchetto a un 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 chiamata attraverso più stack di chiamate, il colore è determinato dal consumo di metriche per tutti gli stack di chiamata. Ad esempio, i colori main e busyloop sono di colore rosso. Questi due frame consumano più tempo di CPU. I frame con etichetta foo2 e baz sono arancione intenso, mentre il frame con etichetta foo1 è arancione più chiaro. I frame per bar e load sono i più leggeri. Questo grafico a fiamme illustra che l'app foo2 consuma più tempo di CPU rispetto a foo1, ma a meno di busyloop:

Modalità colore totale

Per colorare i frame nel grafico a fiamme in base al consumo della metrica della funzione, ma escludere il consumo della metrica dei relativi 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 spontanea

Passaggi successivi