Ohjelmointi

Nuitka Python-to-C-kääntäjä tuottaa suuria suorituskyvyn parannuksia

Nuitka, kääntäjä, joka muuntaa Pythonin C: ksi sekä suorituskyvyn että kannettavamman ajonajan vuoksi, on saavuttanut 0,6-julkaisunsa - virstanpylväs, joka luo pohjan tuleville suorituskyvyn parannuksille. Kuten Nuitkan kehittäjä Kay Hayen sanoi, "Suorituskykyparannukset ovat todennäköisesti jokaisessa tulevassa julkaisussa."

Nuitka 0.6 soveltaa Pythonin optimointeja bool tyypit (tosi / väärä), jotta niitä käyttävä koodi voidaan supistaa mahdollisimman tehokkaaksi C-koodiksi. bool optimoinnit ovat alkusoitto samanlaisille optimoinnille muille muuttujatyypeille.

Nuitka, kuten Cython, kääntää Python-ohjelman C: hen ja linkittää tuloksena olevan suoritettavan Python-ajonaikaan parhaan yhteensopivuuden saavuttamiseksi. Python-versiot 2.6, 2.7 ja 3.3 - 3.7 ovat kaikki tuettuja, mukaan lukien rakenteet asynkronoitu.

Nuitkalla kootut Python-ohjelmat voivat hyötyä suurista suorituskyvyn parannuksista. Hayen väittää, että Pystone-vertailuarvon Nuitkan kokoama versio toimii noin 312 prosenttia nopeammin kuin perinteinen CPython-toteutus.

Mutta Hayen varoittaa, että merkittävimmät suorituskyvyn parannukset odottavat tyyppijohdon päättymistä Nuitkaan, mikä mahdollistaa tietyntyyppisten Python-objektien täydellisen kääntämisen alkuperäisiin C-versioihin.

Pythonin dynaamisuus vaikeuttaa monenlaisia ​​optimointeja. Monet Cython-optimoinnit vaativat paljon opastusta ja erikoistunun merkintäsyntaksin parhaan tuloksen saavuttamiseksi. Nuitka-projektin tavoitteena on tarjota samanlaisia ​​optimointeja vaatimatta kehittäjää merkitsemään koodia.

Toinen yleisesti käytetty Python-kiihdytin, PyPy, toimii kääntämällä Python-koodi juuri oikeaan aikaan kokoonpanoon. Mutta PyPy toimii parhaiten paikan optimoinnissa; se ei sovi sellaisen Python-sovelluksen kokoamiseen, joka on asennettu itsenäisesti. Nuitka tuottaa erillisiä suoritettavia tiedostoja. Yksi sen mahdollisista käyttötapauksista on Python-sovelluksen pakkaaminen kolmannen osapuolen jakelua varten.

Muita Nuitka 0.6: n parannuksia ovat Windows-tuki Clang-, Microsoft Visual C ++- ja Cygwin-kääntäjille, objektitiedostojen välimuistiin tallentaminen nopeammin (uudelleen Windowsissa) ja luodun C-koodin automaattinen muotoiluclang-muodossa luettavuuden kannalta.

$config[zx-auto] not found$config[zx-overlay] not found