Question

Je voudrais être en mesure de voir comment « coûteux » chaque fil dans mon application utilise callgrind. Je PROFILES avec l'option --separate-thread=yes qui vous donne un fichier callgrind pour l'application entière et puis un par thread.

Ceci est utile pour visualiser le profil d'un fil donné, mais ce que je veux vraiment est juste une liste triée du temps CPU de chaque fil que je puisse voir que les discussions sont les plus gros porcs.

Était-ce utile?

La solution

Valgrind / Callgrind ne permet pas ce comportement. Ni kcachegrind fait, mais je pense que ce sera une bonne amélioration. Peut-être quelques réponses pourraient être trouvées sur leur liste de diffusion.

Un travail mais vraiment ennuyeux façon pourrait être d'utiliser l'option --separate-thread=no et mettre à jour votre code à utiliser pour chaque thread nom différent de la fonction ou le nom de classe. Selon la complexité de votre code, il pourrait être la réponse (à l'aide 1computeData (), 2computeData (), ..)

Autres conseils

Il suffit d'ouvrir plusieurs profils à kcachegrind en même temps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top