web-dev-qa-db-fra.com

Qu'est-ce que "(programme)" dans Chrome profiler du débogueur?

Qu'est-ce que "(programme)" dans la colonne de fonction du débogueur Chrome?

174
hvgotcodes

(program) est Chrome lui-même, la racine de l'arborescence appelant tous les autres codes ... il est là parce que le saut du code natif vers JavaScript, le chargement des ressources, etc. doit commencer quelque part :)

Vous pouvez voir des exemples de l'arborescence dans la documentation Chrome outils de développement .

93
Nick Craver

Je crois que (programme) est du code natif, pas la racine de l'arbre.

Voir ce fil:

https://bugs.webkit.org/show_bug.cgi?id=88446

Donc, plus comme des appels système que comme main ().

Apparemment, cela inclut le temps d'inactivité. De plus, certains profils de (programme) sont disponibles sur chrome: // profiler /

31
user1009908

Comme le dit @Nick, cela doit commencer quelque part.

Il semble que la partie CPU Profiler ressemble à tant d'autres profileurs basés sur mêmes concepts que gprof .

Par exemple, self est presque un nombre inutile, sauf s'il existe quelque chose comme une sorte de bulle d'un grand tableau de nombres dans un code que vous pouvez modifier. Hautement improbable.

Le total devrait inclure les callees, c'est donc plus utile. Cependant, à moins que des échantillons ne soient prélevés pendant le temps bloqué ainsi que pendant le temps d'exécution, cela reste assez inutile, sauf pour les programmes totalement liés au processeur.

Il vous donne ces statistiques par fonction, plutôt que par ligne de code. Cela signifie (si vous pouvez compter sur Total pour cent) qu'une fonction coûte autant, dans le sens où si vous pouviez en quelque sorte la faire prendre zéro temps, comme en le coupant, ce pourcentage est le temps que vous économiserez.

Donc, si vous voulez vous concentrer sur une fonction coûteuse, vous devez rechercher à l'intérieur ce qui pourrait être optimisé. Pour ce faire, vous devez savoir comment le temps est divisé entre les lignes de code de la fonction. Si vous aviez coûté sur une base de code, cela vous amènerait directement à ces lignes.

Je ne sais pas si vous pourrez obtenir un meilleur profileur, comme un échantillonneur de pile d'horloge murale au niveau de la ligne, tel que Zoom . Voici comment je le fais .

14
Mike Dunlavey