Pyston-lite, pengkompil JIT untuk saham Python diperkenalkan

Pembangun projek Pyston, yang menawarkan pelaksanaan berprestasi tinggi bahasa Python menggunakan teknologi kompilasi JIT moden, mempersembahkan sambungan Pyston-lite dengan pelaksanaan pengkompil JIT untuk CPython. Walaupun Pyston ialah cawangan pangkalan kod CPython dan dibangunkan secara berasingan, Pyston-lite direka sebagai sambungan universal yang direka untuk menyambung kepada penterjemah Python standard (CPython).

Pyston-lite membolehkan anda menggunakan teknologi asas Pyston tanpa menukar penterjemah, dengan memasang sambungan tambahan menggunakan pengurus pakej PIP atau Conda. Pyston-lite telah pun dihoskan dalam repositori PyPI dan Conda dan untuk memasangnya, jalankan sahaja arahan "pip install pyston_lite_autoload" atau "conda install pyston_lite_autoload -c pyston". Dua pakej ditawarkan: pyston_lite (JIT terus) dan pyston_lite_autoload (melakukan penggantian JIT automatik apabila proses Python bermula). Ia juga mungkin untuk mengawal kemasukan JIT secara pemrograman daripada aplikasi tanpa memasang modul autoload, menggunakan fungsi pyston_lite.enable().

Walaupun Pyston-lite tidak merangkumi semua pengoptimuman yang tersedia dalam Pyston, penggunaannya boleh meningkatkan prestasi kira-kira 10-25% berbanding Python 3.8 biasa. Pada masa hadapan, ia dirancang untuk memindahkan kebanyakan pengoptimuman yang terdapat dalam Pyston kepada Pyston-lite, serta mengembangkan versi CPython yang disokong (keluaran pertama hanya menyokong Python 3.8). Lebih banyak rancangan global termasuk kerjasama dengan pasukan CPython untuk melaksanakan API baharu untuk JIT, membolehkan kawalan yang lebih lengkap ke atas kerja Python. Kemasukan perubahan yang dicadangkan dalam cawangan Python 3.12 sedang dibincangkan. Sebaik-baiknya, kemungkinan untuk memindahkan semua fungsi dari Pyston ke sambungan sedang dipertimbangkan, yang akan membolehkan kami mengelak daripada mengekalkan garpu CPython kami sendiri.

Sebagai tambahan kepada Pyston-lite, projek itu juga mengeluarkan kemas kini kepada pakej Pyston 2.3.4 sepenuhnya, yang menawarkan pengoptimuman baharu. Dalam ujian pyperformance, versi 2.3.4 adalah lebih pantas daripada keluaran 2.3.3 sebanyak kira-kira 6%. Peningkatan prestasi keseluruhan berbanding CPython dianggarkan sebanyak 66%.

Selain itu, kita boleh perhatikan pengoptimuman yang dibangunkan dalam kitaran pembangunan CPython 3.11 dalam projek utama, yang dalam beberapa ujian memungkinkan untuk meningkatkan prestasi sebanyak 25%. Sebagai contoh, dalam CPython 3.11 kecekapan caching keadaan bytecode modul asas telah ditingkatkan, yang akan mempercepatkan pelancaran skrip sebanyak 10-15%. Panggilan fungsi telah dipercepatkan dengan ketara dan jurubahasa pantas khusus bagi operasi standard telah ditambah. Kerja-kerja juga sedang dijalankan untuk memindahkan beberapa pengoptimuman yang disediakan oleh projek Cinder dan HotPy.

Selain itu, dalam projek nogil, kerja sedang dijalankan pada mod percubaan untuk membina CPython tanpa kunci penterjemah global (GIL, Global Interpreter Lock), yang tidak membenarkan akses selari kepada objek kongsi daripada benang yang berbeza, yang menghalang penyelarasan operasi pada berbilang -sistem teras. Sebagai penyelesaian lain kepada masalah GIL, keupayaan untuk mengikat GIL yang berasingan kepada setiap penterjemah yang berjalan dalam proses sedang dibangunkan (beberapa jurubahasa boleh dijalankan dalam satu proses, tetapi kecekapan pelaksanaan selari mereka bergantung pada GIL).

Sumber: opennet.ru

Tambah komen