2015-10-13 14 views
10

Sto utilizzando qcachegrind per visualizzare un registro profilo creato da Xdebug. Posso vedere bene il file, ma non ho idea di cosa sto guardando.Come si legge l'interfaccia utente di qcachegrind?

Ho provato Google ma continuo a ricevere tutorial di installazione, niente su come capire il display.

  1. Cosa display qcachegrind sotto di me parli la mia domanda
  2. C'è qualcosa di più che posso vedere da questo file, o si tratta di tutti i dati disponibili?

(si prega di aprire l'immagine in una nuova scheda per una migliore visualizzazione)


enter image description here

+0

Avete trovato documentazione utile per qCacheGrind che è possibile condividere? –

+0

@KimberlyW Sfortunatamente no, non l'ho mai fatto. – DelightedD0D

+1

@KimberlyW Ho aspettato più di un anno, sembra che tu sia stato fortunato con 8 giorni, Tom ha appena aggiunto una risposta che la espone piuttosto bene – DelightedD0D

risposta

10

Strumenti come qcachegrind e kcachegrind visualizzare l'uscita del profilatore Xdebug. L'output del profiler è praticamente un log di tutte le chiamate di funzioni PHP con l'ora di inizio, il tempo di esecuzione e la gerarchia corrispondenti.

Una tipica vista è mostrato nella figura seguente:

Laravel App

Sul lato sinistro è il 'profilo piatto'. Elenca tutte le chiamate di singole funzioni da molto tempo a minor tempo. Il 'Incl.' colonna mostra il tempo consumato dalla funzione tra cui callees. La colonna 'Self' mostra il tempo trascorso dalla funzione escludendo i calle. Le colonne "Chiamata" e "Funzione" mostrano rispettivamente il numero di volte in cui una funzione viene chiamata e il nome (più spazio dei nomi) della funzione.

Sul lato destro, sono disponibili varie visualizzazioni per visualizzare i chiamanti e i chiamanti. I chiamanti e i chiamanti corrispondono alla funzione selezionata sul lato sinistro.

Nel mio screenshot in alto, si apre la 'Mappa di Callee'. Ogni rettangolo è una chiamata di funzione all'interno della funzione selezionata (un callee) e ogni rettale all'interno è un callee del callee. La dimensione corrisponde al relativo "Incl". tempo.

Nella parte inferiore, la vista "All Callees" mostra i callee dell'ordine di funzione selezionato di qualsiasi proprietà che si preferisce.

Una visione più dettagliata è stata di:

Callers and callees

Questa è una funzione di una funzione di database laravel ordinato in tempo 'Self'. Si vede chiaramente come si rapportano le diverse chiamate di funzione e quale funzione occupa più tempo: PDOStatement :: execute. Questa non è una sorpresa in quanto è una funzione che si collega a un database esterno, lo interroga e attende il risultato.

Torna allo screenshot originale. Ti dice che la tua applicazione ha speso molto (molto tempo) nella funzione di PHP session_start. Ciò è dimostrato dal tempo di auto del 99,8%.

+0

Non ci sono unità assegnate alle ore maggiori. Puoi dirmi unità? È micro secondo o mini secondo. Sotto colonna Incl e Self. –

+1

1 unità è 1/1.000.000 di secondo (https://xdebug.org/docs/profiler), a.k.a. 1 microsecondo (us, μs). Puoi scegliere tra tempo relativo e tempo assoluto. –

Problemi correlati