Kcachegrind dient als wunderbares Werkzeug, um den Hotspot beim Profiling von Code visuell auf die Quellzeilenebene darzustellen. Ich fand es sehr nützlich, wenn ich meine C ++ - Code-Basis optimieren möchte. Für mein neuestes Python-Projekt habe ich Kcachegrind verwendet, um die Ausgabe von Profilstatistiken zu verarbeiten. Kcachegrind ist ein Linux-Dienstprogramm, aber verschiedene inoffizielle Ports sind verfügbar und ich verwende qcachegrind . Im Allgemeinen funktioniert es zu einem großen Teil und ist für die meisten Probleme ausreichend, außer dass es mir schwer fällt, die Quellenanmerkung zu erhalten.
Auf der Registerkarte "Quelle" werde ich mit der bekannten fehlenden Nachricht
begrüßt %Vor%Verwenden Sie die Option
%Vor%und das Quellenbasisverzeichnis hinzuzufügen war nicht nützlich.
Ich habe das Gefühl, dass das Dienstprogramm ein ELF-Objekt haben möchte, das für Python nicht relevant ist. Jede Hilfe in dieser Hinsicht wäre nützlich.
Relevante Informationen:
Ich zweite @ taleniat Kommentar. Ich bin ein OSX-Benutzer. Ich hatte Probleme, qcachegrind zur Arbeit zu bringen, also habe ich pyprof2calltree benutzt und es funktioniert perfekt, inklusive Quellcode-Tab. YMMV.
Führen Sie zuerst Ihr Skript mit cProfile
aus python -m cProfile -o report.profile report.py
Dann können Sie pcprof2calltree verwenden, um qcachegrind zu starten (keine Zwischenkonvertierung erforderlich).
pyprof2calltree -k -i report.profile
übrigens, Python 2.7.10 und qcachegrind 0.7.4 installiert über Homebrew auf OSX 10.11
Tags und Links python profiling python-2.7 kcachegrind profilestats