Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

王林
王林nach vorne
2023-04-08 12:31:111329Durchsuche

Wie wir alle wissen, ist Python eine Programmiersprache, die leicht zu erlernen ist und über leistungsstarke Funktionen verfügt. Sie steht immer an der Spitze verschiedener Listen zur Benutzernutzung. Dementsprechend haben Forscher verschiedene praktische Tools rund um Python entwickelt, um diese Sprache besser zu bedienen.

Der Compiler fungiert als Übersetzer zwischen Hochsprachen und Maschinen. Es wurden verschiedene Versionen von Python-Compilern entwickelt. Im Folgenden stellen wir Ihnen einen neuen Hochleistungs-Python-Compiler vor. Das Projekt ist erst seit wenigen Tagen online und hat bereits 2,2.000 Sterne erhalten.

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source


Projektadresse: https://github.com/exaloop/codon

Als leistungsstarker Python-Compiler kann Codon Python-Code in nativen Maschinencode kompilieren, und Nr Laufzeitaufwand erforderlich. Typische Beschleunigungen für Python liegen bei etwa dem 10- bis 100-fachen oder mehr in einem einzelnen Thread. Die Leistung von Codon ist im Allgemeinen mit der von C/C++ vergleichbar. Im Gegensatz zu Python unterstützt Codon natives Multithreading, was es um ein Vielfaches schneller machen kann. Codon ist über eine Plugin-Infrastruktur erweiterbar, die es Benutzern ermöglicht, neue Bibliotheken, Compiler-Optimierungen und sogar Schlüsselwörter zu integrieren.

Das Codon-Framework ist vollständig modular und erweiterbar und ermöglicht die nahtlose Integration neuer Module, Compiler-Optimierungen, domänenspezifischer Sprachen usw., wobei aktiv neue Codon-Erweiterungen für mehrere Bereiche wie Bioinformatik und quantitative Finanzen entwickelt werden.

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open SourceCodon Pipeline

Was bewirkt dieser Compiler, der seit seiner Veröffentlichung so beliebt war? Werfen wir einen Blick auf einige Benchmark-Ergebnisse.

Benchmarks

Das Folgende sind Ergebnisse der Codon-Benchmark-Suite, die die Leistung von Python, PyPy, C++ und Codon bei einer Reihe von Aufgaben und Anwendungen vergleicht.

Benchmarks werden mit den folgenden Einstellungen ausgeführt:

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Vergleich von Python, PyPy, Codon.

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Vergleich von Python, PyPy, C++ und Codon




Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Mit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source

Der spezifische Vergleich mehrerer Sprachen ist wie folgt:

Codon folgt so weit wie möglich der CPython-Syntax, -Semantik und -API, berücksichtigt jedoch in einigen Sonderfällen Aus Leistungsgründen gibt es einige Unterschiede zwischen Codon und CPython. Beispielsweise ist Codon ein 64-Bit-Int und CPython ein Int mit beliebiger Breite. In Bezug auf die Leistung betragen CPython-Beschleunigungen typischerweise 10- bis 100-fache Beschleunigungen.

Während Codon einen JIT-Dekorator ähnlich wie Numba bereitstellt, ist Codon im Allgemeinen ein vorauseilender Compiler, der End-to-End-Programme in nativen Code kompilieren kann. Es unterstützt auch die Kompilierung eines größeren Satzes von Python-Konstrukten und -Bibliotheken.

PyPy soll ein einfacher Ersatz für CPython sein, während Codon an einigen Stellen anders ist. Diese Unterschiede spiegeln sich hauptsächlich in der Eliminierung der dynamischen Laufzeit oder der virtuellen Maschine wider, was zu einer besseren Leistung führt.

Codon generiert normalerweise denselben Code wie ein entsprechendes C- oder C++-Programm und kann manchmal besseren Code als ein C/C++-Compiler generieren. Dafür gibt es viele Gründe, z. B. eine bessere Containerimplementierung, Codon verwendet keine Objektdateien und Inlining des gesamten Bibliothekscodes oder verwendet keine Codon-spezifischen Compileroptimierungen, die in C oder C++ durchgeführt werden.

Der Kompilierungsprozess von Codon ähnelt tatsächlich eher C++ als Julia. Julia ist eine dynamisch typisierte Sprache, die Typinferenz als Optimierung durchführt, während Codon-Typen im gesamten Programm vorab überprüft werden. Codon versucht außerdem, die Lernkurve einer neuen Sprache zu umgehen, indem es die Syntax und Semantik von Python übernimmt.

FAQ

Obwohl Codon fast die gesamte Syntax von Python unterstützt, ist es kein einfacher Ersatz und große Codebasen erfordern möglicherweise Änderungen, um mit dem Codon-Compiler ausgeführt zu werden. Beispielsweise wurden einige Python-Module nicht in Codon implementiert und einige dynamische Funktionen von Python sind nicht zulässig. Der Codon-Compiler generiert detaillierte Fehlermeldungen, um etwaige Inkompatibilitätsprobleme zu identifizieren und zu beheben. Codon unterstützt die nahtlose Python-Interoperabilität, um Situationen zu bewältigen, die bestimmte Python-Bibliotheken oder -Dynamik erfordern.

Ich möchte Codon verwenden, habe aber eine große Python-Codebasis und möchte sie nicht portieren. Was soll ich tun?

Sie können Codon über den @codon.jit-Dekorator verwenden, der nur annotierte Funktionen kompiliert und die Datenkonvertierung von und zu Codon automatisch übernimmt. Es ermöglicht auch die Verwendung beliebiger Codon-spezifischer Module oder Erweiterungen, wie z. B. Multithreading.

Wie interoperabel ist es mit anderen Sprachen und Frameworks?

Interoperabilität hat bei Codon Priorität. Wir möchten Codon nicht verwenden, um Benutzer daran zu hindern, andere großartige Frameworks und Bibliotheken zu verwenden, die es gibt. Codon unterstützt die vollständige Interoperabilität mit Python und C/C++.

Verwendet Codon die Garbage Collection?

Ja, Codon verwendet den Boehm-Garbage Collector.

Codon unterstützt das Python-Modul X oder die Funktion Y nicht?

Während Codon eine beträchtliche Teilmenge der Python-Standardbibliothek abdeckt, deckt es noch nicht jede Funktion in jedem Modul ab. Beachten Sie, dass fehlende Funktionen weiterhin über den Python-Import aufgerufen werden können. Viele Funktionen, denen native Implementierungen von Codon fehlen (z. B. E/A- oder Betriebssystemfunktionen), erzielen durch Codon normalerweise keine wesentlichen Beschleunigungen.

Codon ist für meine Anwendung nicht schneller als Python?

Apps, die die meiste Zeit mit in C implementiertem Bibliothekscode verbringen, werden in Codon im Allgemeinen keine wesentlichen Leistungsverbesserungen feststellen. Ebenso treten bei Anwendungen, die E/A- oder netzwerkgebunden sind, die gleichen Engpässe in Codon auf.

Ist Codon für meine Anwendung langsamer als Python?

Wenn dies der Fall ist, melden Sie bitte dem Issue-Tracker, dass Codon deutlich langsamer als Python ist.

Ist Codon frei?

Codon ist für den nicht produktiven Gebrauch immer kostenlos. Benutzern steht es frei, Codon für persönliche, akademische oder andere nichtkommerzielle Anwendungen zu verwenden.

Ist Codon Open Source?

Codon ist unter der Business Source License (BSL) lizenziert, sein Quellcode ist öffentlich verfügbar und für die nicht produktive Nutzung kostenlos. BSL ist technisch gesehen keine „Open-Source“-Lizenz, obwohl Sie Codon in vielen Fällen dennoch wie jedes andere Open-Source-Projekt behandeln können. Wichtig ist, dass laut BSL jede Version von Codon nach drei Jahren auf eine tatsächliche Open-Source-Lizenz (insbesondere Apache) umgestellt wird.

Das obige ist der detaillierte Inhalt vonMit 2.000 Sternen wird die Geschwindigkeit um das Hundertfache erhöht und der leistungsstarke Python-Compiler Codon ist Open Source. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen