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.