Rilis Python 3.13 telah memicu perdebatan menarik di kalangan komunitas pengembang tentang karakteristik kinerjanya, dengan beberapa pengembang melaporkan adanya regresi yang tidak terduga dibandingkan versi sebelumnya, khususnya Python 3.11.
Analisis Kinerja
Benchmark komunitas dan diskusi terbaru telah mengungkapkan gambaran kompleks tentang profil kinerja Python 3.13. Menurut pengujian yang dibagikan oleh pengembang di berbagai platform:
Kinerja List Comprehension
-
Daftar Kecil : Python 3.13 menunjukkan peningkatan signifikan
- ~9.54ns per operasi untuk N=100 elemen
- Hampir 40% lebih cepat dibanding Python 3.12 untuk operasi skala kecil
-
** Daftar Besar** : Hasil beragam
- Peningkatan minimal untuk daftar dengan 10K+ elemen
- Beberapa pengembang melaporkan penurunan kinerja untuk kasus penggunaan tertentu
- Seorang pengembang melaporkan penurunan drastis kinerja untuk daftar sekitar 10.000 item
Masalah Spesifik Platform
Pengujian yang dilakukan pada platform MacOS ARM menunjukkan hasil yang mengkhawatirkan:
- Kinerja 6-9% lebih lambat untuk operasi daftar tertentu dibandingkan Python 3.11
- Perlambatan signifikan sebesar 57% untuk operasi array.array khususnya pada MacOS ARM (seperti dilaporkan dalam Python issue #123540)
Kinerja Pemformatan String
Diskusi menarik muncul mengenai kinerja pemformatan string. Benchmark menunjukkan:
## F-strings (tercepat untuk kasus sederhana)
fexample # ~61.1ns per loop
## %-formatting
example %s % var # ~124ns per loop
## .format()
example {}.format(var) # ~181ns per loop
Perkembangan Positif
Terlepas dari masalah kinerja, Python 3.13 membawa beberapa peningkatan yang disambut baik:
- Peningkatan fungsionalitas REPL
- Kemampuan debugging yang lebih baik
- Pesan kesalahan yang lebih baik, khususnya bermanfaat untuk pengembang pemula
- Peningkatan signifikan pada operasi sistem berkas melalui shutil
- Berbagai peningkatan terkait konkurensi
Perspektif Komunitas
Diskusi kinerja ini menyoroti perdebatan yang lebih luas tentang evolusi Python. Sementara beberapa pengembang mengungkapkan kekhawatiran tentang regresi kinerja, yang lain menunjukkan bahwa kasus penggunaan Python yang umum sering mengandalkan modul ekstensi C untuk operasi yang kritis terhadap kinerja. Fokus pada peningkatan pengalaman pengembang dan pesan kesalahan yang lebih baik menunjukkan pendekatan yang seimbang dalam pengembangan bahasa.
Pekerjaan yang sedang berlangsung pada proyek GILectomy (penghapusan Global Interpreter Lock) berpotensi membagi perhatian dari optimasi kinerja lainnya, meskipun ini mungkin akan menghasilkan peningkatan signifikan dalam rilis mendatang.