Kompilator JIT Ditambahkan ke Python 3.13
- Pengembang inti CPython, Brandt Bucher, mengajukan pull request untuk menambahkan kompilator JIT ke branch Python 3.13.
- Perubahan ini akan menjadi salah satu perubahan terbesar pada interpreter CPython sejak interpreter adaptif terspesialisasi yang ditambahkan di Python 3.11.
Apa itu JIT?
- Kompilasi JIT (Just in Time) berarti kompilasi dilakukan saat kode dijalankan untuk pertama kalinya.
- Kompilator JIT adalah kompilator yang menghasilkan machine code, berlawanan dengan kompilator AOT (Ahead of Time).
- Kode Python terlebih dahulu dikompilasi menjadi bytecode, dan bytecode ini tidak memiliki arti langsung bagi CPU serta dijalankan melalui loop interpreter bytecode khusus.
Apa itu copy-and-patch JIT?
- copy-and-patch JIT adalah konsep yang diusulkan pada 2021, dirancang sebagai algoritma cepat untuk runtime bahasa dinamis.
- copy-and-patch JIT adalah gagasan menyalin instruksi untuk setiap opcode lalu mengisi (menambal/patch) argumen bytecode.
Kelebihan dan kekurangan copy-and-patch JIT
- Sementara kompilator JIT "penuh" mengompilasi bytecode tingkat tinggi menjadi instruksi tingkat rendah pada intermediate language (IL), copy-and-patch JIT melakukannya dari bytecode ke machine code menggunakan sekumpulan template.
- copy-and-patch JIT tidak perlu menjalankan arsitektur kompilator JIT yang kompleks di dalam runtime Python, dan cukup memasang tool JIT LLVM pada mesin yang mengompilasi CPython dari source.
Bagaimana JIT ini bekerja?
- Dengan memperluas API yang baru ditambahkan di Python 3.13, optimizer yang dapat dipasang (pluggable) dapat ditemukan saat runtime.
- JIT baru ini adalah optimizer opsional untuk arsitektur baru tersebut.
- Saat mengompilasi CPython dari source, memberikan flag
--enable-experimental-jit akan menghasilkan template machine code untuk bytecode Python.
Apakah JIT ini lebih cepat?
- Benchmark awal menunjukkan peningkatan performa sekitar 2-9%.
- JIT ini menjadi landasan bagi serangkaian optimasi yang dapat secara signifikan meningkatkan performa Python.
Opini GN⁺
- Kompilator JIT yang ditambahkan ke Python 3.13 merupakan perubahan penting untuk meningkatkan kecepatan eksekusi Python, terutama dapat meningkatkan efisiensi untuk pekerjaan yang berulang.
- copy-and-patch JIT menawarkan pendekatan inovatif untuk meningkatkan performa tanpa perlu mengintegrasikan arsitektur JIT yang kompleks ke runtime Python pengguna.
- Teknologi ini diperkirakan akan memicu diskusi menarik di komunitas Python dan membuka jalan baru bagi optimasi performa Python.
1 komentar
Komentar Hacker News