Ich habe versucht, eine verwandte Frage zu finden, aber alle vorherigen Fragen betreffen Profiler für natives C++ in Windows. Ich habe eine Weile gegoogelt und etwas über gprof gelernt, aber die Ausgabe von gprof enthielt tatsächlich viele obskure interne Funktionen. Gibt es einen guten Open Source C++ Profiler mit guter Dokumentation?Gut C++ Profiler für GCC
Antwort
Valgrind
Ich empfehle total dieses http://en.wikipedia.org/wiki/Valgrind
Verwenden Sie nicht gprof, for the reasons given here.
Was Sie brauchen, sind Stackshots, explained here. Eine Möglichkeit, Stackshots zu erstellen, ist das Dienstprogramm pstack. Eine andere Möglichkeit ist die Verwendung von "Pause" oder ctrl-break unter dem Debugger. Auch lsstack, wenn Sie eine Kopie bekommen können.
Wenn Sie Geld ausgeben möchten, RotateRight makes a nice tool based on stack sampling called Zoom.
Wenn Sie die Abhängigkeiten der KDE-Bibliothek nicht stören, ist KCachegrind sehr nützlich mit der hinzugefügten Visualisierung. Es hängt von Callgrind und Valgrind ab, wie man hätte erraten können, daher sind während der Kompilierzeit keine speziellen Compiler-Flags erforderlich.
Ich habe gehört, dass oprofile wirklich, wirklich gut für Echtzeit-Apps ist. Linux nur, obwohl, AFAIK.
Wie viel Detail benötigen Sie in Ihren Profilberichten? Wenn Sie nur ein paar sehr einfache Zeitprofile für einige wenige Funktionen erstellen möchten, können Sie mit den neuen Funktionen, die über die Klassen C++ 11 chrono
verfügbar sind, Cross-Plattform-Cross-Compiler erstellen.
Siehe this article für einen einfachen Profilierungscode, der ähnlich zu Matlab funktioniert super einfach zu tic
und toc
Funktionen zu verwenden.
- 1. Mikrosekunden-Profiler für C-Code
- 2. C++ Code Profiler
- 3. Profiler für Solaris SPARC Platform (für C++ - Anwendungen)
- 4. Was ist ein gut zu bedienender Profiler für C++ unter Linux?
- 5. Gibt es einen Profiler für C (gcc), um Codezeilen getrennt zu profilieren?
- 6. Profiler für Visual Studio 2008, C++?
- 7. Gut Refactoring Unterstützung für C++
- 8. C-Programm für GCC und MS Visual Express C++ funktioniert nur für GCC
- 9. Welcher C++ - Profiler wird verwendet?
- 10. Visual Profiler für Node.js
- 11. NYTProf Profiler für Perl
- 12. Profiler/Analysator für Erlang?
- 13. GCC C++ überschreiben -frtti für einzelne Klasse
- 14. Boost C++ Bibliotheken für gcc-arm toolchain
- 15. Profiler lib für wcf + Postsharp
- 16. die Suche nach einem freien, Zeit-Sampling-Profiler für C++
- 17. C Funktionsausrichtung in GCC
- 18. Instruct GCC als C++
- 19. Fehler bei Vorlage Instanziierung in GCC 4.9, funktionieren gut in GCC 4.8
- 20. GCC C++ Ausnahmebehandlung Implementierung
- 21. SCons: GCC Ignorieren -c
- 22. NetBeans Einstellungen für GCC
- 23. C++ gcc String inlining
- 24. C Headers (GCC)
- 25. Empfohlene Open Source Profiler
- 26. Linux Eclipse CDT Profiler
- 27. C-Grammatik im GCC-Quellcode
- 28. C++ 0x regex in GCC
- 29. Gut getestete C/C++ lockfreie Warteschlange?
- 30. Gevent Profiler für lange laufende Code
Sie können auch die manuelle Profilerstellung mit http://code.google.com/p/profiny ausprobieren. Der Overhead sollte im Vergleich zu anderen Tools sehr klein sein. – user2001885
mögliches Duplikat von [Was kann ich verwenden, um C++ - Code in Linux zu profilieren?] (Http://stackoverflow.com/questions/375913/what-can-i-use-to-profile-c-code-in-linux) – user