Ing Python, dheweke wis ngrembug proposal kanggo mbusak GIL lan entuk kinerja sing luwih apik

Logo Python

Python minangka basa pamrograman tingkat dhuwur.

Kabar bubar nyuwil sing ing Python Project Steering Komite wis announced kepinginan kanggo sarujuk ing Proposal ekstensi basa Python «PEP-0703″, nggawe kunci interpreter global opsional ing CPython lan sing dhasar nemtokake embed mode kompilasi CPython tanpa Global Interpreter Lock (GIL).

PEP-0703 nemtokake kanggo mungkasi nggunakake GIL minangka standar, nanging nambah opsi mbangun "-sin-gil" kanggo mateni. Piye kabarel Mode anyar wis samesthine kanggo ngatasi masalah karo parallelization saka operasi ing sistem multi-inti, disebabake kasunyatan sing kunci global ora ngidini akses podo karo obyek sambungan saka Utas beda.

Disebutake yen ing jangka panjang (sawise 5 taun), cangkang direncanakake bakal diganti kanthi standar mung ing mode non-kunci global, nalika ing wektu sing padha ngeculake dhukungan kanggo kompilasi karo GIL.

Matur nuwun kanggo kabeh sing nanggapi survey babagan proposal no-GIL. Cetha yen sentimen umum positif, kanggo gagasan umum lan khusus kanggo PEP 703. Dewan Direksi uga umume positif ing loro. Kita arep nampa PEP 703, sanajan kita isih nggarap rincian panrima.

Kaya sing wis ditindakake sawetara wektu kepungkur, kita pengin ngandhani niat kanggo nampa PEP bebarengan karo pikiran kita saiki babagan rincian sing ana gandhengane karo acceptance.

Kajaba iku, Disebutake yen owah-owahan sing direncanakake bakal ditindakake kanthi telung tahap, kang short, medium lan long term. Diwenehi ing tataran pisanan, mateni GIL minangka standar ora praktis amarga overhead sing digandhengake karo owah-owahan ing kolektor sampah, sistem manajemen memori, lan primitif kanggo ngatur kunci. Contone, amarga nggunakake pancacahan referensi kanggo isolasi thread, ana penurunan kinerja kanggo skrip single-threaded (ing pyperformance test Suite dening 10%). Ing wektu sing padha, bisa uga kudu mateni GIL ing komputasi ilmiah, amarga kekurangan paralelisasi minangka masalah sing luwih serius tinimbang kecepatan eksekusi kode linier.

Ing tataran kapindho, Sejatine konfirmasi bakal ngenteni. lan sing ana cukup dhukungan saka masyarakat supaya nggunakake "non-GIL layak" lan priksa manawa GIL-kurang mbangun didhukung nanging ora standar.

Ing tahap pungkasan, no-GIL wis dadi nilai standar lan sembarang vestiges saka GIL bakal dibusak (tanpa perlu bejat kompatibilitas mundur).

Ditliti yen karya kanggo pindhah adoh saka GIL bakal rampung kanthi ati-ati supaya ora mbaleni kesalahan apa sing kedadeyan nalika promosi Python 3: A mbangun non-GIL kudu mesthekake kompatibilitas karo versi lawas saka Python, lan sembarang owah-owahan kode pihak katelu dibutuhake kanggo bisa ing non-GIL mbangun uga kudu digunakake ing GIL mbangun.

Ora ana rencana kanggo ngganti versi kanggo Python 4 kanggo mbangun non-GIL, amarga bakal njaga kompatibilitas ABI.

Sajrone proses kasebut, kita (pangembang inti, ora mung SC) kudu ngevaluasi maneh kemajuan lan garis wektu sing disaranake. Kita ora pengin iki dadi perang kompatibilitas mundur sepuluh taun maneh, lan kita pengin bisa mbatalake PEP 703 lan golek solusi liyane yen katon masalah, mula kita kudu mriksa kanthi rutin manawa karya sing terus-terusan.

Muga-muga iki menehi kajelasan babagan masa depan PEP nalika kita ngupayakake rincian sing tepat babagan panriman. SC bakal kerja kanggo ngrampungake panriman ing sawetara minggu sing bakal teka.

Sadurunge transisi lengkap kanggo non-GIL mbangun, kita rencana kanggo entuk dhukungan masyarakat lengkap kanggo mbangun iki, uga nyedhiyani API C tambahan lan API Python kanggo ngaktifake multithreading aman ing kode ana.

Pungkasan, kaya sing wis kasebut, samesthine transisi menyang tahap katelu bisa kedadeyan paling ora 5 taun lan kemungkinan tanggal PEP-0703 yaiku rilis Python 3.13, dijadwalake kanggo musim gugur sabanjure.

Yen sampeyan kasengsem ing ngerti liyane babagan, sampeyan bisa mriksa rinciane Ing link ing ngisor iki.


Dadi pisanan komentar

Ninggalake komentar sampeyan

Panjenengan alamat email ora bisa diterbitake. Perangkat kothak ditandhani karo *

*

*

  1. Tanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Kontrol SPAM, manajemen komentar.
  3. Legitimasi: idin sampeyan
  4. Komunikasi data: Data kasebut ora bakal dikomunikasikake karo pihak katelu kajaba kanthi kewajiban ukum.
  5. Panyimpenan data: Database sing dianakake dening Occentus Networks (EU)
  6. Hak: Kapan wae sampeyan bisa matesi, mulihake lan mbusak informasi sampeyan.