Pyston 2 een implementatie van Python met een JIT-compiler

Na een onderbreking van drie jaar in ontwikkeling, de lancering van het Pyston 2-project is gepubliceerd, wat heb ik ontwikkeldnaar een krachtige implementatie van de Python-taal gebruikmakend van de ontwikkelingen van het LLVM-project.

De implementatie onderscheidt zich door het gebruik van moderne JIT-compilatietechnologieën en streeft naar hoge prestaties vergelijkbaar met traditionele systeemtalen zoals C ++.

De code van eerdere versies door Pyston werd verspreid onder de Apache-licentie, maar Pyston 2-code is nog niet beschikbaar en alleen kant-en-klare builds zijn vrijgegeven voor Ubuntu 18.04 en 20.04 (een bestand met de code is beschikbaar om te downloaden, maar er is alleen een stub met informatie dat het project nog steeds gesloten is) .

Het publiceren van de code maakt deel uit van de plannen van de ontwikkelaarsmaar dit zal gebeuren nadat de vorming van het bedrijfsmodel is voltooid van het nieuwe bedrijf en er werd besloten Pyston verder te ontwikkelen zonder de financiële steun van Dropbox.

Over Pyston 2

In tegenstelling tot eerdere versies, Pyston 2 is gemarkeerd als stabiel en niet als proefversie. Er is veel werk verzet om de prestaties te optimaliseren en Pyston 2 is nu ongeveer 3.8% sneller dan de originele Python 20 bij het passeren van de testsuite voor python-macrobenchmarks.

De meest opvallende prestatieverbeteringen worden gezien in de inherente werkbelasting van webapplicaties. In afzonderlijke tests zoals chaos.py en nbody.py presteert Pyston 2 beter dan Python 3.8 met een factor 2. De kosten van het gebruik van JIT zijn een lichte toename van het geheugengebruik.

We zijn erg verheugd om Pyston v2 uit te brengen, een snellere en zeer compatibele implementatie van de programmeertaal Python. Versie 2 is 20% sneller dan de standaard Python 3.8 in onze macrobenchmarks. Wat nog belangrijker is, het is waarschijnlijk sneller in uw code. Pyston v2 kan serverkosten verlagen, gebruikerslatenties verminderen en de productiviteit van ontwikkelaars verbeteren.

Pyston v2 is eenvoudig te implementeren, dus als u op zoek bent naar betere Python-prestaties, raden we u aan vijf minuten de tijd te nemen om Pyston eens te proberen. Dit is een van de gemakkelijkste manieren om uw project te versnellen.

In termen van compatibiliteit met native Python, het Pyston-project wordt aangeprezen als de meest compatibele alternatieve implementatie voor CPython, aangezien Pyston een vork is van de belangrijkste CPython-codebase.

pyston ondersteunt alle CPython-functies, inclusief de C API voor het ontwikkelen van C-extensies. Pyston is oorspronkelijk ontwikkeld door Dropbox, dat in 2017 besloot de interne ontwikkeling stop te zetten. Begin 2020 hebben de topontwikkelaars van Pyston hun bedrijf opgericht, het project volledig opnieuw uitgevonden en zijn ze fulltime bij Pyston gaan werken.

Technische details over Pyston 2-padding zijn nog niet verstrekt, alleen DynASM JIT, inline caching en algemene CPython-optimalisaties worden genoemd. De vorige versie van Pyston gebruikte één methode JIT tegelijk, vergelijkbaar met de JIT in moderne JavaScript-engines.

In JIT werd de Python-code geparseerd en vertaald naar een tussenvertegenwoordiging LLVM (IR, tussenvertegenwoordiging). Verder werd de IR-weergave verwerkt in de LLVM-optimizer en voor uitvoering doorgegeven aan de LLVM JIT-engine, die de IR-weergave in machinecode omzet.

Om informatie te verkrijgen over de soorten variabelen voor programma's in de dynamische Python-taal, werd de techniek van probabilistische voorspelling van objecttypes gebruikt, gevolgd door de verduidelijking van de juiste type keuze tijdens de uitvoering.

Daarom varieerde Pyston constant de uitvoering tussen twee takken: de snelle, wanneer de voorspelde snelheden worden bevestigd, en de langzame, die wordt gebruikt in het geval van een type-mismatch.

De klus kan worden gedaan in multithread-modus, waardoor de parallelle uitvoering van verschillende codethreads in de Python-taal mogelijk is en vrij is van de Global Interpreter Lock (GIL).

Eindelijk als je er meer over wilt wetenkunt u de details in het volgende link.


De inhoud van het artikel voldoet aan onze principes van redactionele ethiek. Klik op om een ​​fout te melden hier.

Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd.

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.