Pelancaran Python 3.13 telah mencetuskan perbahasan menarik dalam komuniti pembangun mengenai ciri-ciri prestasinya, dengan sesetengah pembangun melaporkan kemerosotan yang tidak dijangka berbanding versi sebelumnya, terutamanya Python 3.11.
Analisis Prestasi
Penanda aras komuniti dan perbincangan terkini telah mendedahkan gambaran kompleks mengenai profil prestasi Python 3.13. Menurut ujian yang dikongsi oleh pembangun di pelbagai platform:
Prestasi Pemahaman Senarai
-
Senarai Kecil : Python 3.13 menunjukkan peningkatan ketara
- ~9.54ns setiap operasi untuk N=100 elemen
- Hampir 40% lebih pantas berbanding Python 3.12 untuk operasi skala kecil
-
** Senarai Besar** : Keputusan bercampur
- Peningkatan minimum untuk senarai dengan 10K+ elemen
- Sesetengah pembangun melaporkan kemerosotan prestasi untuk kes penggunaan tertentu
- Seorang pembangun melaporkan kejatuhan prestasi untuk senarai sekitar 10,000 item
Isu Khusus Platform
Ujian yang dijalankan pada platform MacOS ARM telah menunjukkan keputusan yang membimbangkan:
- Prestasi 6-9% lebih perlahan untuk operasi senarai tertentu berbanding Python 3.11
- Kelembapan sebanyak 57% untuk operasi array.array khususnya pada MacOS ARM (seperti dilaporkan dalam Python issue #123540)
Prestasi Pemformatan Rentetan
Perbincangan sampingan yang menarik telah muncul mengenai prestasi pemformatan rentetan. Penanda aras menunjukkan:
## F-strings (terpantas untuk kes mudah)
fexample # ~61.1ns setiap gelung
## %-formatting
example %s % var # ~124ns setiap gelung
## .format()
example {}.format(var) # ~181ns setiap gelung
Perkembangan Positif
Walaupun terdapat kebimbangan prestasi, Python 3.13 membawa beberapa penambahbaikan yang dialu-alukan:
- Peningkatan fungsi REPL
- Keupayaan penyahpepijatan yang lebih baik
- Mesej ralat yang lebih baik, terutamanya memberi manfaat kepada pembangun baharu
- Penambahbaikan ketara dalam operasi sistem fail melalui shutil
- Pelbagai peningkatan berkaitan keserentakan
Perspektif Komuniti
Perbincangan prestasi menyoroti perbahasan yang lebih luas tentang evolusi Python. Walaupun sesetengah pembangun menyatakan kebimbangan tentang kemerosotan prestasi, yang lain menunjukkan bahawa kes penggunaan Python yang biasa sering bergantung pada modul sambungan-C untuk operasi kritikal prestasi. Tumpuan pada pengalaman pembangun yang lebih baik dan mesej ralat yang lebih baik mencadangkan pendekatan yang seimbang dalam pembangunan bahasa.
Kerja yang berterusan dalam projek GILectomy (penyingkiran Global Interpreter Lock) berkemungkinan telah membahagikan perhatian daripada pengoptimuman prestasi lain, walaupun ini mungkin membawa kepada peningkatan ketara dalam versi akan datang.