Ich bin auf der Suche nach ein paar Tools zu profilieren, wo die Zeit verbracht wird. Habe oprofile angeschaut, aber das gibt mir wirklich nicht, was ich brauche.Profil Zeit verbrachte
Ich sah Callgrind, insbesondere mit den Makros CALLGRIND_START_INSTRUMENTATION und CALLGRIND_STOP_INSTRUMENTATION. Ich möchte nicht, dass das Tool die App zu sehr verlangsamt, wie es Valgrind im Allgemeinen tut. Aber das funktioniert nicht wirklich, weil Valgrind alles zu einem einzigen Thread zusammenzufassen scheint.
Zum Beispiel, wenn fn A ruft fb B, die fn C anruft, und zurück zu B und A, möchte ich wissen, wie viel Zeit wo verbracht wurde. Ich habe einige Mutex-Tools, die ich verwende, aber ein gutes Zeit-Tool wäre sehr nützlich, um zu sehen, wo genau die Zeit verbracht wird, damit ich mich auf diese Pfade konzentrieren kann. Kann ich nichts hinzufügen, gibt es ein Werkzeug, das ich für diese Aufgabe verwenden kann? Es ist eine C++ App btw. Ich kann Valgrind wegen seiner Singlethread-Ness im Kernel nicht verwenden. Auch meine App verbringt eine Menge Zeit zu warten, so dass einfache CPU-Profiler nicht wirklich helfen.
scheint wie eine Frage, die schon mehrfach beantwortet worden wäre ... –
Ich habe versucht, etwas zu finden, konnte aber nicht. Vielleicht benutzte ich schlechte Suchbegriffe :) Ich sah ein paar Verweise auf Callgrind und Valgrind, aber nicht viel darüber hinaus. Kannst du mir nur in die richtige Richtung zeigen? Oder wenn Sie einige Werkzeuge haben, die Sie vorschlagen können, wäre das großartig! –
Die meisten davon ist Callgrind, die ich nicht verwenden kann, weil es einzelne Threads der gesamten App :(Ich sehe nichts anderes in meinem Abschnitt Verwandte .. –