Gibt es ein ähnliches Werkzeug für Linux, die wie Shark auf Mac OS X funktioniert?
Lösung
OProfile ist ein Werkzeug, das Sampling-basierte tut Profilierung sowohl Ihre Anwendung und das System ruft es macht. Dies ermöglicht zu sehen, detaillierte Informationen darüber, wo es viel Zeit. Sie stellen keine GUI haben, aber es gibt mehr Front-Ends, die Sie die Informationen aus den Läufen verarbeiten lassen.
Ich habe es ausgiebig, sowohl für Desktop-Anwendungen und für eingebettete Systeme verwendet. Es dauert ein wenig Mühe, um die Ergebnisse zu interpretieren, aber der Ausgang ist wirklich callgraph hier nützlich.
Andere Tipps
Erweiterung eine andere Antwort, ich benutze den 'Callgrind' Option von valgrind ( http://valgrind.org ). Dann installieren Sie kcachegrind von KDE für eine nette GUI-Schnittstelle.
als Tutorial Attrappe, tun:
1) Kompilieren Sie Ihre Anwendung mit Debug-Informationen. Es ist eine gute Idee, mit der Optimierung, um zu versuchen Profilierung auf und ab, mit der Optimierung off Sie weitere Informationen erhalten werden, aber es kann weniger genau sein (insbesondere kleine Funktionen scheinen mehr Zeit zu nehmen, als sie verdienen.
2) Führen Sie mit:
valgrind --tool=callgrind <name of your app> <your app's options>
Dies sollte eine Datei erzeugt genannte ‚callgrind.something‘, die Sie in kcachegrind laden können.
Sie können auch sehen:
valgrind --tool=cachegrind <name of your app> <your app's options>
Welche gibt es Informationen geben, wie Sie Ihre App mit Ihrer CPU-Cache interagiert.
Beachten Sie, dass während valgrind und Hai wie ähnliche Anwendungen scheinen, sie sind sehr unterschiedlich arbeiten. Wenn Sie eine App in valgrind läuft es oft langsamer als normal (oft mehr als 40-mal langsamer), aber die Ergebnisse, die Sie erhalten, sind viel genauer als Haifisch laufen. Ich neige dazu, beide zu verwenden, so kann ich so viele Informationen wie möglich erhalten!
Sie können sich wahrscheinlich versuchen Valgrind ( http://valgrind.org/ ). Sie haben sowohl Laufzeit- und Kompilierung Tools Profilierungs.
Ein bisschen spät, diese zu beantworten, aber die nächste Antwort ist Zoom . Einige der Shark Team daran gearbeitet.