Programmēšana

Nuitka Python-to-C kompilators nodrošina lielu veiktspējas pieaugumu

Nuitka, kompilators, kas pārveido Python par C gan veiktspējas pieauguma, gan pārnēsājamāka izpildlaika labā, ir sasniedzis savu 0.6 versiju - pavērsiens, kas veido pamatu nākotnes veiktspējas pieaugumam. Kā izteicās Nuitka izstrādātājs Kajs Heins, “Veiktspējas uzlabojumi, visticamāk, būs katrā nākamajā laidienā.

Nuitka 0.6 pielieto Python’s optimizācijas bool veidi (patiess / nepatiess), lai kodu, izmantojot tos, varētu samazināt līdz visefektīvākajam iespējamajam C kodam. The bool optimizācijas nāk kā ievads līdzīgām citu mainīgo tipu optimizācijām.

Nuitka, tāpat kā Cython, kompilē Python programmu ar C un maksimāli saderībai sasaista iegūto izpildāmo failu ar Python izpildlaiku. Tiek atbalstītas visas Python versijas 2.6, 2.7 un 3.3 līdz 3.7, ieskaitot tādas konstrukcijas kā asinhronais.

Ar Nuitka kompilētās Python programmas var gūt labumu no lieliem veiktspējas uzlabojumiem. Heinens apgalvo, ka Nuitka apkopotā Pystone etalona versija darbojas par aptuveni 312 procentiem ātrāk nekā parastā CPython ieviešana.

Bet Heins brīdina, ka visbūtiskākie veiktspējas uzlabojumi gaida tipa secinājumu ienākšanu Nuitkā, ļaujot pilnībā tulkot noteiktu veidu Python objektus vietējās C ​​versijās.

Python dinamisms pēc būtības apgrūtina daudzu veidu optimizāciju. Lai iegūtu labākos rezultātus, daudzām Cython optimizācijām ir nepieciešamas lielas norādes un specializēta anotāciju sintakse. Nuitka projekta mērķis ir nodrošināt tāda paša veida optimizācijas, neprasot izstrādātājam anotēt kodu.

Cits bieži izmantots Python paātrinātājs PyPy darbojas, savlaicīgi apkopojot Python kodu montāžai. Bet PyPy vislabāk darbojas optimizācijai uz vietas; tas nav piemērots, lai sastādītu Python lietotni, kas tiek izvietota patstāvīgi. Nuitka ģenerē atsevišķus izpildāmos failus. Viens no tā iespējamiem izmantošanas gadījumiem ir Python lietotnes iesaiņošana trešo personu izplatīšanai.

Citi uzlabojumi Nuitka 0.6 ietver Windows atbalstu Clang, Microsoft Visual C ++ un Cygwin kompilatoriem, objektu failu kešatmiņu ātrākai kompilēšanai (atkal operētājsistēmā Windows) un ģenerētā C koda automātisko formatēšanuclang-formāts lasāmībai.

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