- Global Interpreter Lock (GIL) ของ Python เป็นอุปสรรคสำคัญที่ขัดขวางการเพิ่มประสิทธิภาพของโปรแกรมที่ใช้หลายเธรด
- ในเดือนตุลาคม 2021 Sam Gross ได้เปิดตัวเวอร์ชันพิสูจน์แนวคิดของ Python ที่ไม่มี GIL แต่แม้ช่วงแรกจะได้รับการตอบรับอย่างตื่นเต้น ก็แทบไม่มีความคืบหน้าครั้งใหญ่นานกว่าหนึ่งปี
- ขณะนี้ Python Steering Council ได้ประกาศความตั้งใจที่จะผสานฟีเจอร์ no-GIL เข้ามา
- โครงการ Faster CPython ซึ่งเริ่มขึ้นในช่วงกลางปี 2021 มุ่งเน้นการปรับปรุงประสิทธิภาพแบบเธรดเดี่ยวของอินเทอร์พรีเตอร์ Python
- ในงาน PyCon ปีนี้ สมาชิกสองคนของทีม Faster CPython ได้นำเสนอกลยุทธ์ที่ใช้เพื่อเพิ่มประสิทธิภาพของอินเทอร์พรีเตอร์
- ในเดือนมกราคม 2023 Łukasz Langa ผู้พัฒนาหลัก ได้เผยแพร่ PEP 703 ฉบับแรก ("การใช้ Global Interpreter Lock แบบเลือกได้ใน CPython") ซึ่งเขียนโดย Gross
- ชุมชน Python ต้องการหลีกเลี่ยงการเปลี่ยนผ่านอันสับสนจาก Python 2 ไป Python 3 การเปลี่ยนแปลงใด ๆ เพื่อเอา GIL ออกจะต้องเข้ากันได้กับโค้ดที่ไม่ได้เตรียมตัวสำหรับสิ่งนี้
- เมื่อวันที่ 14 มิถุนายน ทีม Faster CPython ได้เพิ่มแรงกดดันให้มีการตัดสินใจเกี่ยวกับฟีเจอร์ no-GIL
- เมื่อวันที่ 28 กรกฎาคม Thomas Wouters สมาชิกสภาได้ประกาศว่าสภาได้ยอมรับ PEP 703 แล้ว แต่รายละเอียดของการยอมรับยังอยู่ระหว่างการปรับให้ลงตัว
- แผนคือการนำอินเทอร์พรีเตอร์เวอร์ชัน no-GIL เข้ามาก่อน เพื่อระบุองค์ประกอบที่ยังขาดทั้งหมด จากนั้นจึงแก้ไข และทำให้ no-GIL กลายเป็นค่าเริ่มต้นและเวอร์ชันสุดท้ายของ Python
- คาดว่าการเปลี่ยนผ่านไปยังเวอร์ชัน no-GIL จะใช้เวลาราว 5 ปี และมีคำมั่นว่าจะไม่ทำผิดซ้ำแบบในอดีต
- บทความนี้อภิปรายวิธีใช้การเขียนโปรแกรมแบบขนานของ .NET เพื่อเร่งลูป
for/foreach เมื่อมีข้อมูลที่ "แบ่งงานได้อย่างน่าอับอาย"
- บทความนี้อภิปรายถึงความเป็นไปได้ในระยะยาวของการคงประสิทธิภาพแบบเธรดเดียวของ Python โดยบางส่วนมองว่าภาระส่วนเกินที่หลีกเลี่ยงไม่ได้และความซับซ้อนที่เพิ่มขึ้นจะทำให้ประสิทธิภาพลดลงในที่สุด
- บทความนี้ทบทวนการเปลี่ยนผ่านจาก Python 2 ไป Python 3 ซึ่งทั้งสองเวอร์ชันไม่เข้ากัน
- ผู้เขียนโต้แย้งว่าผลกระทบจากการที่ Python 3 ไม่เข้ากันกับ Python 2 นั้นมีบางคนคาดการณ์ไว้แล้ว ซึ่งตรงข้ามกับความเข้าใจที่แพร่หลาย และได้แชร์ลิงก์ไปยังบล็อกโพสต์จากปี 2007
- ผู้เขียนเน้นย้ำความสำคัญของบทเรียนที่ได้จากการเปลี่ยนผ่านจาก Python 2 ไป Python 3 และย้ำเรื่องนี้เพื่อหลีกเลี่ยงปัญหาคล้ายกันในอนาคต
- บทความนี้สรุปด้วยการยอมรับวิสัยทัศน์ล่วงหน้าของผู้ที่คาดการณ์ความท้าทายของการเปลี่ยนผ่านจาก Python 2 ไป Python 3
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News