Nach dieser stackoverflow answer ist Instruments eine GUI Front-End zu dtrace. Es gibt Apple Documentation, die diese und einige OS-X spezifische Artikel auf dtrace unter unter anderem bestätigen.
Es gibt patches, die auf die CPython-Quelle angewendet werden können, bevor sie kompiliert wird, um sie für dtrace zu instrumentieren. Es scheint, dass es Unterstützung für das automatische Erstellen eines neuen Python mit dtrace in homebrew gibt oder gab, aber googeln jetzt, ich finde keine Referenzen für ein Homebrew-Rezept mit Dtrace-Provider-Unterstützung für aktuelle Python-Releases (2.7.10, 3.4/3.5). Ich habe es nicht versucht, vielleicht funktioniert das aktuelle Rezept nur mit einem --with-dtrace
Schalter beim Aufbau.
Es gibt eine Rede von PyTexas 2013: dtrace, Python and You, die davon spricht, eine Python-Installation mit dtrace-Unterstützung (speziell mit einem Mac demonstriert) und der Verwendung von dtrace in der Befehlszeile zu erhalten.
Ich würde denken, sobald Sie ein Python mit Dtrace-Unterstützung installiert hatten, sollten Sie in der Lage sein, es in Instruments zu sehen und zu verwenden. Wenn Sie einer OS X-Anwendung einen Python-Interpreter hinzufügen (entweder als.Framework oder eine andere Form der Verknüpfung), wenn diese Python die Dtrace-Patches vor der Kompilierung angewendet hätte, würde ich auch denken, dass es für die Arbeit mit Dtrace verfügbar wäre. Ich habe es nicht versucht, aber angesichts dessen, was ich über Dtrace weiß, glaube ich, dass es funktionieren sollte. Wenn ich bestätige, dass dies der Fall ist, werde ich zurückschreiben.
haben Sie versucht [RunSnakeRun] (http://www.vrplumber.com/programming/runsnakerun/)? Ich persönlich habe es nie benutzt, aber es scheint das zu sein, wonach du suchst. – KronoS
@KronoS: Ich denke, ich habe ähnliche Lösungen für cProfile und Exporteure zu KCacheGrind gesehen. Jedoch: (1) Ich möchte auch das native C-Code-Profil sehen, d. H. Beide kombiniert. (2) Ich möchte auch gerne. Verwenden Sie Xcode-Instrumente. – Albert
Vielleicht verstehe ich nicht ganz, was Sie fragen, aber vielleicht könnten Sie Ihr Skript mit 'python -m cProfile meinskript.py' ausführen? Dann könnten Sie einfach die Ausgabe in eine Logdatei speichern – ollien