Neues Python 3.13 — Verbesserte Leistung und Multithreading
12:27, 10.10.2024
Am 7. Oktober 2024 wurde die stabile Version von Python 3.13 veröffentlicht, die viele bedeutende Neuerungen bringt, darunter ein experimenteller JIT-Compiler, ein Modus ohne Global Interpreter Lock (GIL) und ein aktualisierter interaktiver Interpreter auf Basis von PyPy. Diese Verbesserungen sollen die Leistung und Benutzerfreundlichkeit der Sprache erhöhen. Python 3.13 wird anderthalb Jahre lang unterstützt, gefolgt von Sicherheitsupdates für weitere dreieinhalb Jahre.
Eine der wichtigsten Neuerungen ist der experimentelle JIT-Compiler, der die Ausführung von Programmen erheblich beschleunigt. Um JIT in CPython zu aktivieren, wurde eine Build-Option --enable-experimental-jit hinzugefügt, die die Installation von LLVM erfordert. Dieser Compiler basiert auf der Copy-and-Patch-Architektur und ersetzt Bytecode in Echtzeit durch Maschinenbefehle.
Eine weitere Neuerung ist die Möglichkeit, CPython ohne GIL zu bauen. Diese Funktion, die durch die Option --without-gil aktiviert wird, ermöglicht die parallele Codeausführung auf Mehrkern Systemen und behebt Sperrprobleme in Multithreading-Umgebungen. Die Deaktivierung von GIL führt jedoch zu einer leichten Verringerung der Leistung bei Einfadenprogrammen, die durch die Multithreading-Leistungssteigerungen ausgeglichen wird.
Ein weiteres wichtiges Update ist der aktualisierte interaktive Interpreter, der Funktionen aus PyPy übernimmt. Er unterstützt jetzt die Bearbeitung mehrerer Zeilen, farbige Rückverfolgungen, interaktive Hilfe und andere Verbesserungen für bequemeres Codieren.
Python 3.13 umfasst auch Verbesserungen bei der Handhabung lokaler Variablen in Funktionen, führt eine neue Annotation typing.TypeIs ein und implementiert weitere wichtige Änderungen, darunter eine verbesserte Version der Speicherzuweisungsbibliothek mimalloc.
Dieser Release stellt einen wichtigen Schritt in der Entwicklung von Python dar und verbessert sowohl die Leistung als auch die Möglichkeiten für Multithreading und interaktives Programmieren.