Das PyPy-Team hat am 11. August 2016 eine überarbeitete Fassung von JitViewer und VMProf vorgestellt. Der offizielle PyPy-Beitrag beschreibt neue Werkzeuge, mit denen sich JIT-kompilierter Code und die Laufzeit von Python-Programmen untersuchen lassen.
JitViewer macht erzeugten Maschinencode sichtbar
JitViewer zeigt die interne Repräsentation des RPython-Compilers und den daraus erzeugten Maschinencode. Die grafische Darstellung soll dabei helfen, Probleme in einem Programm zu lokalisieren. Für Entwickler technischer Werkzeuge ist das besonders dann relevant, wenn ein JIT-Compiler nicht den erwarteten Code erzeugt oder einzelne Pfade ungewöhnlich langsam laufen.
Die Überarbeitung führt ein binäres Format für die JIT-Logs ein. Die Daten werden verdichtet, teilweise mit Gzip komprimiert und für spätere Erweiterungen versioniert. Die Logs lassen sich über die Weboberfläche von VMProf betrachten, ohne dass dafür lokal ein separates Anzeigeprogramm eingerichtet werden muss. Die Dokumentation zum JIT-Log beschreibt den technischen Aufbau.
CPU-Profiling ergänzt die JIT-Analyse
VMProf arbeitet als statistischer CPU-Profiler mit geringem Laufzeitaufwand. Das PyPy-Team bündelt beide Werkzeuge, weil ein Profil zunächst langsame Programmstellen sichtbar machen kann. JitViewer liefert anschließend Details zum erzeugten Code und zu den Optimierungen des JIT-Compilers. Die Kombination ist damit auch für Teams interessant, die Laufzeitverhalten in Python-basierten Tools oder interaktiven Anwendungen untersuchen. Eine ähnliche Verbindung von Skripting und Debugging beschreibt der ältere Beitrag zu GDB 7.9.
