CPython 3.15: Neues Profiling-Verfahren für den JIT-Compiler mit minimalem Overhead
Python 3.15's Ultra-Low Overhead Interpreter Profiling Mode – Ken Jin's Blog
Ken Jin beschreibt in seinem Blog eine neuartige Methode zum Profiling des Interpreters in CPython 3.15, die für die JIT-Kompilierung eingesetzt wird. Statt zwei getrennte Interpreter zu verwenden oder eine Profiling-Logik mit bedingten Verzweigungen einzubauen, nutzt der Ansatz zwei Dispatch-Tabellen, die zur Laufzeit einfach ausgetauscht werden. Dadurch wird der Overhead im Vergleich zu anderen Tracing-Systemen wie PyPy drastisch reduziert: Während PyPy beim Tracing eine Verlangsamung um das 900- bis 1000-fache erleidet, beträgt der Overhead in CPython nur etwa das 4,5-fache. Der Beitrag erläutert die technischen Details und diskutiert die Komplexität des Systems.
Ich bin ziemlich stolz darauf, was wir uns für den Profiling-Interpreter ausgedacht haben.