Pyston 2 eine Implementierung von Python mit einem JIT-Compiler

Nach einer dreijährigen Entwicklungspause Der Start des Pyston 2-Projekts wurde veröffentlicht. Was habe ich entwickelt?zu einer leistungsstarken Implementierung der Python-Sprache unter Verwendung der Entwicklungen des LLVM-Projekts.

Die Umsetzung zeichnet sich durch den Einsatz moderner JIT-Kompilierungstechnologien aus und zielt darauf ab, eine hohe Leistung ähnlich wie bei herkömmlichen Systemsprachen wie C ++ zu erzielen.

Der Code aus früheren Versionen von Pyston wurde unter der Apache-Lizenz vertriebenPyston 2-Code ist jedoch noch nicht verfügbar und es werden nur gebrauchsfertige Builds für Ubuntu 18.04 und 20.04 veröffentlicht (eine Datei mit dem Code steht zum Download zur Verfügung, es gibt jedoch nur einen Stub mit Informationen, dass das Projekt noch geschlossen ist).

Die Veröffentlichung des Codes ist Teil der Pläne der Entwickleraber das wird getan nach Abschluss der Geschäftsmodellbildung des neuen Unternehmens und es wurde beschlossen, Pyston ohne die finanzielle Unterstützung von Dropbox weiterzuentwickeln.

Über Pyston 2

Im Gegensatz zu früheren Versionen Pyston 2 ist als stabil markiert und nicht als Testversion. Es wurde viel Arbeit geleistet, um die Leistung zu optimieren, und Pyston 2 ist jetzt um etwa 3.8% schneller als das ursprüngliche Python 20, wenn die Testsuite python-macrobenchmarks bestanden wird.

Die bemerkenswertesten Leistungssteigerungen sind bei inhärenten Workloads von Webanwendungen zu verzeichnen. In separaten Tests wie Chaos.py und Nbody.py übertrifft Pyston 2 Python 3.8 um den Faktor 2. Die Kosten für die Verwendung von JIT sind ein leichter Anstieg des Speicherverbrauchs.

Wir freuen uns sehr, Pyston v2 zu veröffentlichen, eine schnellere und hochkompatible Implementierung der Programmiersprache Python. Version 2 ist 20% schneller als das Standard-Python 3.8 in unseren Makrobenchmarks. Noch wichtiger ist, dass es in Ihrem Code wahrscheinlich schneller ist. Pyston v2 kann die Serverkosten senken, die Benutzerlatenzen verringern und die Entwicklerproduktivität verbessern.

Pyston v2 ist einfach zu implementieren. Wenn Sie also nach einer besseren Python-Leistung suchen, empfehlen wir Ihnen, sich fünf Minuten Zeit zu nehmen und Pyston auszuprobieren. Dies ist eine der einfachsten Möglichkeiten, Ihr Projekt zu beschleunigen.

In Bezug auf die Kompatibilität mit nativem Python das Pyston-Projekt wird als die kompatibelste alternative Implementierung für CPython angepriesen, da Pyston eine Abzweigung der Haupt-CPython-Codebasis ist.

Kolben unterstützt alle CPython-Funktionen, einschließlich der C-API für die Entwicklung von C-Erweiterungen. Pyston wurde ursprünglich von Dropbox entwickelt, die 2017 beschlossen hat, die interne Entwicklung einzustellen. Anfang 2020 gründeten die Top-Entwickler von Pyston ihr Unternehmen, erfanden das Projekt komplett neu und begannen hauptberuflich bei Pyston zu arbeiten.

Technische Details zum Pyston 2-Padding werden noch nicht bereitgestellt. Es werden nur DynASM JIT, Inline-Caching und allgemeine CPython-Optimierungen erwähnt. In der vorherigen Version von Pyston wurde jeweils eine JIT-Methode verwendet, ähnlich der JIT in modernen JavaScript-Engines.

In JIT wurde der Python-Code analysiert und übersetzt zu einer Zwischendarstellung LLVM (IR, Zwischendarstellung). Darüber hinaus wurde die IR-Darstellung im LLVM-Optimierer verarbeitet und zur Ausführung an die LLVM-JIT-Engine übergeben, die die IR-Darstellung in Maschinencode konvertierte.

Um Informationen über die Variablentypen für Programme in der dynamischen Python-Sprache zu erhalten, wurde die Technik der probabilistischen Vorhersage von Objekttypen verwendet, gefolgt von der Klärung der richtigen Typauswahl während der Ausführung.

Daher variierte Pyston ständig die Ausführung zwischen zwei Zweigen: dem schnellen, wenn vorhergesagte Raten bestätigt werden, und dem langsamen, das im Falle einer Typfehlanpassung verwendet wird.

Die Arbeit könnte im Multithread-Modus ausgeführt werden. Ermöglicht die parallele Ausführung mehrerer Code-Threads in der Python-Sprache und frei von der globalen Interpreter-Sperre (GIL).

Schließlich wenn Sie mehr darüber wissen wollenkönnen Sie die Details in der überprüfen folgenden Link


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.