Es ist kein Geheimnis, dass Python keine schnelle Programmiersprache ist. Viele Entwickler freuen sich auf Verbesserungen in der Leistung dieser Sprache. Diese Situation könnte sich bald ändern oder sich zumindest in die richtige Richtung bewegen. Dies ist auch eines der Ergebnisse der Entscheidungsfindung des Python-Gründers arbeiten.
Am 7. Mai veröffentlichte das Python-Team die neueste Python-Version – Python 3.11. Derzeit wird eine Betaversion (Beta1) veröffentlicht, die Entwickler zum Testen oder Experimentieren verwenden können.
Gemäß den vom Entwicklungsteam festgelegten Vorschriften wird die offizielle Version voraussichtlich im Oktober 2022 veröffentlicht.
Ein neugieriger Internetnutzer hat es auf seiner eigenen virtuellen Maschine getestet. Er hat Python 3.10 und 3.11 in separaten Docker-Containern installiert und sich deren Vergleich in einer Reihe von Benchmark-Tests angesehen.
Das pyperformance-Paket wird verwendet, um diese Arbeit abzuschließen. Dieses Paket hilft Entwicklern, umfangreiche Benchmark-Testarbeiten durchzuführen.
Zusammenfassende Daten, basierend auf dem Durchschnittswert, ist Python 3.11 14 % schneller als Python 3.10. Die neue Version 3.11 ist bei einigen Benchmarks etwas langsamer, bei den meisten Benchmarks jedoch 64 % schneller.
Die folgenden Benchmark-Tests wurden auf einem M1 Pro MacBook Pro 16 mit einer 10-Core-CPU durchgeführt. Jede Python-Version wird in Docker installiert, das 5 logische CPU-Kerne verwendet.
Das Folgende sind die laufenden Daten verschiedener Pakete:
Die aktuelle offizielle Version von Python 3.11 Es wurde noch nicht offiziell veröffentlicht und muss auf eine vollständig stabile Version warten. Derzeit wird nur eine Kandidatenversion getestet. Möglicherweise wird die Lücke zwischen den beiden größer, nachdem die offizielle Version veröffentlicht wurde.
Text |. OSC Open Source Community (ID: oschina2013)
Microsoft Nachdem Guido van Rossum, der Vater von Python, dem Faster CPython-Team beigetreten war, machte er auf dem Python Language Summit 2021 harte Worte und sagte, dass das Team in der Python-Version 3.11 eine mindestens 1-fache Geschwindigkeitssteigerung erreichen werde.
Auf dem diesjährigen Python Language Summit berichteten Guido und Teampartner Mark Shannon über die neuesten Fortschritte: Vergleich von Version 3.10, CPython Die Beschleunigung von 3.11 liegt zwischen 10 und 60 %, abhängig von Bedingungen wie Codegröße und Arbeitsbereich. CPython 3.11 ist durchschnittlich 25 % schneller als CPython 3.10, wenn es mit GCC unter Ubuntu Linux kompiliert wird, gemessen mit der Pyperformance-Benchmark-Suite.
Die Leistungsverbesserungen von CPython 3.11 konzentrieren sich hauptsächlich auf einen schnelleren Start und eine schnellere Laufzeit. Die meisten dieser Optimierungen stammen aus PEP 659: Adaptive Die Funktionsweise des Interpreters ähnelt in gewisser Weise der von JIT. Beide identifizieren Hotcode, der Arbeitsbereich des adaptiven Interpreters kann jedoch nicht vom Bytecode getrennt werden. Die Arbeit am PEP 659-Vorschlag ist mittlerweile fast abgeschlossen, die dynamische Optimierung von For-Schleifen und Binäroperationen muss jedoch noch abgeschlossen werden.
Python 3.11 ist zwar um 25 % schneller, weist jedoch noch einige Verbesserungsmöglichkeiten auf. Beispielsweise ist der Speicherverbrauch von Python in 3.11 im Wesentlichen derselbe wie in 3.10.
Darüber hinaus müssen wir auf das Problem der C-Erweiterungen achten: Die einfache Schnittstelle von CPython mit C ist der Hauptvorteil, aber die Inkompatibilität mit C-Erweiterungen ist ein großer Nachteil. Die Optimierungsarbeit des Faster CPython-Teams in CPython 3.11 hat das Problem der Erweiterungsmodule weitgehend ignoriert. In diesem Zusammenhang sagte Teamleiter Shannon, dass das Team die Möglichkeit prüft, Low-Level-Funktions-APIs für virtuelle Maschinen verfügbar zu machen, um Python-Code zu reduzieren und C-Code so weit wie möglich.
Was den mit Spannung erwarteten JIT-Compiler betrifft, sagte Shannon, dass der erste Schritt zur Implementierung von JIT darin besteht, einen Tracing-Interpreter zu implementieren, aber es gibt derzeit zu viele Projekte, die Aufmerksamkeit für die Einführung von JIT benötigen Kompilierung Die Arbeit des Geräts hat noch einiges vor sich, „es kann frühestens mit 3.13 eintreffen.“ (Übrigens war Shannon immer skeptisch, ob CPython wirklich JIT einführen muss.)
Interessanterweise haben wir gestern über den neuen Vorschlag von Entwickler Sam Gross berichtet: vollständige Migration mit Ausnahme von CPython GIL des Dolmetschers – globale Dolmetschersperre. Dieser Vorschlag und die Arbeit des Faster CPython-Teams werden Multithread-Python-Code auf völlig unterschiedliche Weise beschleunigen, aber beides kann zu Konflikten führen. Schließlich basiert ein großer Teil der von Faster CPython implementierten Optimierungen auf dieser Prämisse dass die GIL noch existiert.
Hinweis: Beim letztjährigen Kernentwickler-Sprinttreffen führten die Kernentwickler mit Sam Gross eine ausführliche Diskussion über das Nogil-Projekt und beantworteten viele Fragen, die allen mehr Sorgen bereiteten. Für spezifische Besprechungsprotokolle lesen Sie bitte diesen Artikel – Offizielles Python-Seminar: Ist es wirklich machbar, die GIL vollständig zu entfernen?
Das obige ist der detaillierte Inhalt vonDie Leistung von Python 3.11 hat sich um fast 64 % verbessert!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!