Differenza tra 'self' e 'total' nel profilo CPU Chrome di JS


229

Qual è la differenza tra le colonne "self" e "total" nella profilazione della CPU Chrome del codice JS?

inserisci qui la descrizione dell'immagine


13
Il tempo autonomo non è quasi mai utile in un software serio, perché quasi tutto il tempo viene impiegato per chiamare sistema / libreria / DB / IO, ecc., Quindi il contatore del programma trascorre pochissimo tempo effettivo, in percentuale, nel codice, a meno che non si capita di scrivere una sorta di ciclo stretto. Potrebbe dirti che molto è usato nelle routine di un sistema, ma non ti va bene. Devi sapere quale parte del tuo codice fa perdere molto tempo.
Mike Dunlavey,

Se una funzione si blocca chiamando un oggetto incorporato (come l'invio XMLHttpRequest non asincrono), il tempo autonomo potrebbe essere molto utile. In tali casi, queste funzioni, pur essendo i colli di bottiglia, potrebbero non essere visualizzate nella parte superiore delle misurazioni del tempo totale.
Konstantin,

Risposte:


303

self è quanto tempo è stato impiegato a lavorare direttamente in quella funzione.

total è quanto tempo è stato impiegato in quella funzione e nelle funzioni che ha chiamato.


11
quindi il sé sarebbe solo dichiarazioni in linea e non chiamate di funzione? E il totale sta eseguendo tutto il codice all'interno della chiamata?
CoolUserName

42
Per inciso, dal momento che le persone sembrano trovare una risposta utile: questo è vero per i profiler in generale, non solo per Chrome.
duskwuff -inattivo-

2
Cosa accadrebbe se una funzione si chiama ricorsivamente? come lo leggeresti correttamente allora?
David Limkys,

3
Il link Documenti è qui (nella sezione "Visualizza i dettagli della funzione") . Self time: Quanto tempo è stato necessario per completare l'invocazione corrente della funzione, incluse solo le istruzioni nella funzione stessa, escluse le funzioni che ha chiamato. Total time: Il tempo impiegato per completare l'invocazione corrente di questa funzione e di tutte le funzioni che ha chiamato.
Iman Mahmoudinasab,

E qual è la semantica della percentuale che ora viene mostrata lungo i valori di sé e del tempo totale? Voglio dire, è una percentuale di cosa in cosa?
jayarjo,

10

Self Time: per una funzione, è la quantità di tempo per eseguire il codice all'interno della funzione (istruzioni in linea). Il controllo delle prestazioni delle singole funzioni è noto come analisi dal basso.

Tempo totale: per una funzione, è il tempo di auto di quella funzione e i tempi di auto di tutte le funzioni che la funzione chiama. Controllare le prestazioni delle funzioni insieme ai loro callees è un'analisi top-down.

NB: Solo perché una funzione ha un tempo di auto elevato, ciò non significa che la funzione stessa sia inefficiente. È anche importante guardare quante volte viene chiamata quella funzione.

Articolo di Intel

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.