Pyston 2 pelaksanaan Python dengan penyusun JIT

Setelah ketinggalan tiga tahun dalam pembangunan, pelancaran projek Pyston 2 telah diterbitkan, apa yang saya bangunkanuntuk pelaksanaan prestasi tinggi bahasa Python menggunakan perkembangan projek LLVM.

Pelaksanaan menonjol untuk penggunaan teknologi penyusunan JIT moden dan bertujuan untuk mencapai prestasi tinggi yang serupa dengan bahasa sistem tradisional seperti C ++.

Kod dari versi sebelumnya oleh Pyston diedarkan di bawah lesen Apache, tetapi kod Pyston 2 belum tersedia dan hanya binaan siap pakai yang dikeluarkan untuk Ubuntu 18.04 dan 20.04 (fail dengan kod tersedia untuk dimuat tetapi hanya ada rintisan dengan maklumat bahawa projek itu masih ditutup) .

Penerbitan kod adalah sebahagian daripada rancangan pemajutetapi ini akan dilakukan setelah pembentukan model perniagaan selesai syarikat baru dan diputuskan untuk terus mengembangkan Pyston tanpa sokongan kewangan Dropbox.

Mengenai Pyston 2

Tidak seperti versi sebelumnya, Pyston 2 ditandakan stabil dan bukan sebagai versi percubaan. Banyak kerja yang telah dilakukan untuk mengoptimumkan prestasi dan Pyston 2 kini lebih pantas daripada Python 3.8 yang asli sekitar 20% ketika melewati suite ujian python-macrobenchmark.

Kenaikan prestasi yang paling ketara dilihat pada beban kerja aplikasi web yang wujud. Dalam ujian berasingan seperti chaos.py dan nbody.py, Pyston 2 mengatasi Python 3.8 dengan faktor 2. Kos penggunaan JIT adalah sedikit peningkatan penggunaan memori.

Kami sangat gembira dapat melepaskan Pyston v2, pelaksanaan bahasa pengaturcaraan Python yang lebih pantas dan serasi. Versi 2 adalah 20% lebih cepat daripada Python 3.8 standard di tanda makrobench kami. Lebih penting lagi, ia mungkin lebih cepat dalam kod anda. Pyston v2 dapat mengurangkan kos pelayan, mengurangkan latensi pengguna, dan meningkatkan produktiviti pembangun.

Pyston v2 mudah dilaksanakan, jadi jika anda mencari prestasi Python yang lebih baik, kami mengesyorkan agar anda mengambil masa lima minit dan mencuba Pyston. Melakukannya adalah salah satu kaedah termudah untuk mempercepat projek anda.

Dari segi keserasian dengan Python asli, projek Pyston disebut sebagai pelaksanaan alternatif yang paling serasi untuk CPython, kerana Pyston adalah garpu dari pangkalan data CPython utama.

Piston menyokong semua fungsi CPython, termasuk C API untuk mengembangkan sambungan C. Pyston pada awalnya dikembangkan oleh Dropbox, yang pada tahun 2017 memutuskan untuk menghentikan pembangunan dalaman. Pada awal tahun 2020, pemaju utama Pyston mendirikan syarikat mereka, mencipta semula projek itu, dan mula bekerja di Pyston sepenuh masa.

Perincian teknikal padding Pyston 2 belum diberikan, hanya DynASM JIT, cache sebaris, dan pengoptimuman CPython umum yang disebutkan. Versi Pyston sebelumnya menggunakan satu kaedah JIT pada satu masa, serupa dengan JIT dalam mesin JavaScript moden.

Di JIT, kod Python dihuraikan dan diterjemahkan kepada perwakilan perantaraan LLVM (IR, perwakilan pertengahan). Selanjutnya, perwakilan IR diproses dalam pengoptimal LLVM dan diserahkan ke mesin LLVM JIT untuk pelaksanaan, yang mengubah perwakilan IR menjadi kod mesin.

Untuk mendapatkan maklumat mengenai jenis pemboleh ubah untuk program dalam bahasa Python yang dinamik, teknik ramalan probabilistik jenis objek digunakan, diikuti dengan penjelasan pilihan jenis yang betul semasa pelaksanaan.

Oleh itu, Pyston selalu mengubah pelaksanaan antara dua cabang: yang cepat, apabila kadar yang diramalkan disahkan, dan yang lambat, yang digunakan dalam kes ketidakcocokan jenis.

Kerja boleh dilakukan dalam mod multithreaded, membenarkan pelaksanaan selari beberapa utas kod dalam bahasa Python dan bebas dari kunci jurubahasa global (GIL).

Akhirnya sekiranya anda ingin mengetahui lebih lanjut mengenainya, anda boleh menyemak butiran di pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.