Frage

Ich möchte in der Lage sein zu sehen, wie „teuer“ jeder Thread in meiner Anwendung Callgrind verwenden. Ich profilierte mit der --separate-thread=yes Option, die Ihnen eine Datei Callgrind für die gesamte App und dann einem pro Thread gibt.

Dies ist nützlich für das Profil eines bestimmten Thread sehen, aber was ich wirklich will, ist nur eine sortierte Liste der CPU-Zeit von jedem Thread, so kann ich die Fäden sind die die größten Schweine sehen.

War es hilfreich?

Lösung

Valgrind / Callgrind dieses Verhalten nicht erlauben. Weder kcachegrind tut, aber ich denke, es wird eine gute Verbesserung. Vielleicht könnten einige Antworten auf ihre Mailing-Liste zu finden.

Eine Arbeits aber wirklich langweilig Art und Weise zu verwenden Sie die Option --separate-thread=no sein könnte, und aktualisieren Sie Ihren Code für jeden Thread verwenden, um einen verschiedener Funktionsnamen oder Klassenname. Je Code Komplexität, es könnte die Antwort sein (mit 1computeData (), 2computeData (), ..)

Andere Tipps

Öffnen Sie einfach mehrere Profile in kcachegrind zugleich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top