Perdebatan Kinerja Python 3.13: Hasil Beragam dan Regresi yang Mengejutkan

Tim Editorial BigGo
Perdebatan Kinerja Python 3.13: Hasil Beragam dan Regresi yang Mengejutkan

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.