Différence entre «soi» et «total» dans le profil du processeur Chrome de JS

229

Quelle est la différence entre les colonnes "self" et "total" dans le profilage du processeur Chrome du code JS?

entrez la description de l'image ici

CoolUserName
la source
13
Le temps libre n'est presque jamais utile dans les logiciels sérieux, car presque tout le temps est consacré à appeler le système / bibliothèque / DB / IO, etc., donc le compteur de programme passe très peu de temps réel, en pourcentage, dans votre code, sauf si vous arriver à écrire une sorte de boucle serrée. Cela pourrait vous dire que beaucoup sont utilisés dans les routines d'un système, mais cela ne vous sert à rien. Vous devez savoir quelle partie de votre code nécessite beaucoup de temps.
Mike Dunlavey
Si une fonction se bloque en appelant un objet intégré (comme un envoi XMLHttpRequest non asynchrone), l'auto-temps peut être très utile. Dans de tels cas, ces fonctions, tout en étant les goulots d'étranglement, peuvent ne pas apparaître en haut des mesures de temps total.
Konstantin

Réponses:

303

self est le temps passé à travailler directement dans cette fonction.

total est le temps passé dans cette fonction et dans les fonctions qu’elle appelait.

duskwuff -inactif-
la source
11
donc self ne serait que des instructions en ligne, et non des appels de fonction? Et au total, tout le code s'exécute-t-il dans l'appel?
CoolUserName
42
Soit dit en passant, car les gens semblent trouver cette réponse utile: cela est vrai des profileurs en général, pas seulement dans Chrome.
duskwuff -inactif-
2
Que se passerait-il si une fonction s'appelle récursivement? comment le liriez-vous correctement?
David Limkys
3
Le lien Documents est ici (dans la section 'Afficher les détails de la fonction') . Self time: Combien de temps il a fallu pour terminer l'appel en cours de la fonction, y compris uniquement les instructions de la fonction elle-même, à l'exclusion des fonctions qu'elle a appelées. Total time: Le temps qu'il a fallu pour terminer l'appel en cours de cette fonction et de toutes les fonctions qu'elle a appelées.
Iman Mahmoudinasab
Et quelle est la sémantique du pourcentage qui est maintenant affiché avec les valeurs de temps auto et total? Je veux dire que c'est un pour cent de quoi dans quoi?
jayarjo
10

Self Time: pour une fonction, est la durée d'exécution du code dans la fonction (instructions inline). La vérification des performances de chaque fonction est appelée analyse ascendante.

Temps total: pour une fonction, est le temps propre de cette fonction et le temps propre de toutes les fonctions appelées par la fonction. La vérification des performances des fonctions avec leurs callees est une analyse descendante.

NB: Ce n'est pas parce qu'une fonction a un temps d'autonomie élevé que la fonction elle-même est inefficace. Il est également important de voir combien de fois cette fonction est appelée.

Article par Intel

JSON C11
la source