1 poin oleh GN⁺ 2023-08-19 | 1 komentar | Bagikan ke WhatsApp
  • Python Global Interpreter Lock (GIL) selama ini menjadi hambatan utama yang menghalangi peningkatan performa pada program yang menggunakan banyak thread.
  • Pada Oktober 2021, Sam Gross memperkenalkan versi pembuktian konsep Python tanpa GIL, tetapi meskipun awalnya mendapat sambutan antusias, selama lebih dari setahun hampir tidak ada kemajuan besar.
  • Python Steering Council kini telah mengumumkan niatnya untuk mengintegrasikan fitur no-GIL.
  • Proyek Faster CPython yang dimulai pada pertengahan 2021 berfokus pada peningkatan performa single-thread interpreter Python.
  • Pada PyCon tahun ini, dua anggota tim Faster CPython mempresentasikan strategi yang mereka gunakan untuk meningkatkan performa interpreter.
  • Pada Januari 2023, pengembang inti Łukasz Langa memublikasikan versi pertama PEP 703 ("Membuat Global Interpreter Lock opsional di CPython") yang ditulis oleh Gross.
  • Komunitas Python berusaha menghindari transisi kacau dari Python 2 ke Python 3. Semua perubahan untuk menghapus GIL harus tetap kompatibel dengan kode yang belum dipersiapkan untuk perubahan ini.
  • Pada 14 Juni, tim Faster CPython meningkatkan tekanan dengan mendesak diambilnya keputusan terkait fitur no-GIL.
  • Pada 28 Juli, anggota dewan Thomas Wouters mengumumkan bahwa dewan telah menerima PEP 703, tetapi rincian penerimaannya masih sedang diselaraskan.
  • Rencananya adalah memperkenalkan versi interpreter no-GIL untuk mengidentifikasi seluruh komponen yang masih kurang, lalu menyelesaikannya agar no-GIL pada akhirnya menjadi versi default sekaligus versi final Python.
  • Transisi ke versi no-GIL diperkirakan akan memakan waktu sekitar 5 tahun, disertai komitmen untuk tidak mengulangi kesalahan masa lalu.
  • Artikel ini membahas cara mempercepat loop for/foreach ketika tersedia data yang "embarrassingly parallel" dengan menggunakan pemrograman paralel di .NET.
  • Artikel ini membahas kelayakan jangka panjang dalam mempertahankan performa single-thread Python, sementara sebagian pihak berpendapat bahwa overhead yang tak terhindarkan dan meningkatnya kompleksitas pada akhirnya akan menurunkan performa.
  • Artikel ini merefleksikan transisi dari Python 2 ke Python 3, yang tidak memiliki kompatibilitas antara kedua versinya.
  • Penulis berpendapat bahwa dampak inkompatibilitas Python 3 terhadap Python 2 sudah diperkirakan oleh sebagian orang, bertentangan dengan pandangan umum, dan membagikan tautan ke tulisan blog dari tahun 2007.
  • Penulis menekankan pentingnya pelajaran yang dipetik dari transisi Python 2 ke Python 3 agar masalah serupa dapat dihindari di masa depan.
  • Artikel ini ditutup dengan pengakuan atas visi jauh ke depan dari orang-orang yang telah memprediksi tantangan transisi dari Python 2 ke Python 3.

1 komentar

 
GN⁺ 2023-08-19
Komentar Hacker News
  • Diskusi artikel tentang penghapusan Global Interpreter Lock (GIL) dan proyek CPython yang lebih cepat.
  • Sejumlah komentator percaya artikel tersebut tidak cukup menekankan manfaat penghapusan GIL dan lebih condong ke kubu yang "menentang GIL".
  • Pekerjaan Sam Gross pada proyek no-GIL dipuji karena kualitasnya yang tinggi dan kemampuannya menghadirkan peningkatan performa.
  • Komunitas menunjukkan minat besar pada proyek ini, dan komite pengarah berencana menerima PEP 703, usulan yang terkait dengan proyek tersebut.
  • Sejumlah komentator menyatakan kekhawatiran bahwa penghapusan GIL dapat berdampak negatif pada kode Python multi-thread.
  • Keputusan untuk menjalankan proyek dalam mode pengujian tampak masuk akal, tetapi ada kekhawatiran bahwa sumber daya tambahan akan dibutuhkan jika muncul bug dan kesulitan potensial.
  • Beberapa komentator menganggap penghapusan GIL adalah kekeliruan karena dapat menimbulkan penalti performa dan mengorbankan perbaikan potensial lainnya.
  • Yang lain mengusulkan untuk memprioritaskan performa single-thread dan menambahkan proses virtual dengan mekanisme yang jelas untuk berbagi memori.
  • Dorongan Sam Gross terhadap proyek ini dipuji, dan meskipun jalannya panjang dan berat, jalan menuju Python tanpa GIL tampak sebagai perkembangan yang positif.
  • Ada kekhawatiran tentang meningkatnya biaya pemeliharaan untuk memastikan ketepatan codebase yang ada dan menjadikan GIL/no-GIL sebagai switch pada waktu kompilasi.
  • Komunitas Python dipuji atas transparansi dan tata kelolanya yang baik, tetapi ada suara yang meminta lebih banyak dukungan dari industri teknologi mengingat nilai yang mereka peroleh dari Python.
  • Sejumlah komentator mempertanyakan apakah dapat diterima jika sebagai akibat proyek ini kode single-thread menjadi 15-20% lebih lambat.