เปิดตัว Pyston-lite คอมไพเลอร์ JIT สำหรับหุ้น Python

ผู้พัฒนาโครงการ Pyston ซึ่งนำเสนอการใช้งานภาษา Python ที่มีประสิทธิภาพสูงโดยใช้เทคโนโลยีการคอมไพล์ JIT ที่ทันสมัย ​​นำเสนอส่วนขยาย Pyston-lite พร้อมการใช้งานคอมไพเลอร์ JIT สำหรับ CPython แม้ว่า Pyston จะเป็นสาขาหนึ่งของโค้ดเบส CPython และได้รับการพัฒนาแยกกัน แต่ Pyston-lite ได้รับการออกแบบให้เป็นส่วนขยายสากลที่ออกแบบมาเพื่อเชื่อมต่อกับล่าม Python มาตรฐาน (CPython)

Pyston-lite ช่วยให้คุณใช้เทคโนโลยี Pyston พื้นฐานโดยไม่ต้องเปลี่ยนล่าม โดยการติดตั้งส่วนขยายเพิ่มเติมโดยใช้ PIP หรือ Conda package manager Pyston-lite โฮสต์อยู่ในที่เก็บ PyPI และ Conda แล้ว และหากต้องการติดตั้ง เพียงเรียกใช้คำสั่ง “pip install pyston_lite_autoload” หรือ “conda install pyston_lite_autoload -c pyston” มีสองแพ็คเกจให้เลือก: pyston_lite (JIT โดยตรง) และ pyston_lite_autoload (ดำเนินการทดแทน JIT อัตโนมัติเมื่อกระบวนการ Python เริ่มทำงาน) นอกจากนี้ยังสามารถควบคุมการรวม JIT จากแอปพลิเคชันโดยทางโปรแกรมได้โดยไม่ต้องติดตั้งโมดูลโหลดอัตโนมัติ โดยใช้ฟังก์ชัน pyston_lite.enable()

แม้ว่า Pyston-lite จะไม่ครอบคลุมการเพิ่มประสิทธิภาพทั้งหมดที่มีใน Pyston แต่การใช้งานสามารถปรับปรุงประสิทธิภาพได้ประมาณ 10-25% เมื่อเทียบกับ Python 3.8 ทั่วไป ในอนาคต มีการวางแผนที่จะถ่ายโอนการเพิ่มประสิทธิภาพส่วนใหญ่ที่มีอยู่ใน Pyston ไปยัง Pyston-lite รวมถึงขยายเวอร์ชัน CPython ที่รองรับ (รุ่นแรกรองรับเฉพาะ Python 3.8 เท่านั้น) แผนระดับโลกเพิ่มเติมรวมถึงการร่วมมือกับทีม CPython ในการใช้ API ใหม่สำหรับ JIT ช่วยให้สามารถควบคุมการทำงานของ Python ได้อย่างสมบูรณ์ยิ่งขึ้น การรวมการเปลี่ยนแปลงที่เสนอไว้ในสาขา Python 3.12 อยู่ระหว่างการหารือ ตามหลักการแล้ว มีการพิจารณาความเป็นไปได้ในการย้ายฟังก์ชันทั้งหมดจาก Pyston ไปยังส่วนขยาย ซึ่งจะทำให้เราสามารถหลีกเลี่ยงการดูแลรักษา CPython fork ของเราเองได้

นอกจาก Pyston-lite แล้ว โปรเจ็กต์ยังเปิดตัวการอัปเดตแพ็คเกจ Pyston 2.3.4 ที่มีคุณสมบัติครบถ้วน ซึ่งมีการปรับปรุงใหม่ ในการทดสอบ pyPerformance เวอร์ชัน 2.3.4 จะเร็วกว่ารีลีส 2.3.3 ประมาณ 6% ประสิทธิภาพโดยรวมที่เพิ่มขึ้นเมื่อเทียบกับ CPython อยู่ที่ประมาณ 66%

นอกจากนี้ เรายังสังเกตการปรับให้เหมาะสมที่พัฒนาขึ้นภายในวงจรการพัฒนา CPython 3.11 ในโปรเจ็กต์หลัก ซึ่งในการทดสอบบางอย่างทำให้สามารถเพิ่มประสิทธิภาพได้ 25% ตัวอย่างเช่น ใน CPython 3.11 ประสิทธิภาพในการแคชสถานะรหัสไบต์ของโมดูลพื้นฐานเพิ่มขึ้น ซึ่งจะทำให้การเปิดตัวสคริปต์เร็วขึ้น 10-15% การเรียกใช้ฟังก์ชันได้รับการเร่งความเร็วอย่างมากและมีการเพิ่มล่ามที่รวดเร็วเฉพาะทางของการดำเนินการมาตรฐาน งานยังอยู่ระหว่างการดำเนินการเพื่อเพิ่มประสิทธิภาพบางอย่างที่จัดทำโดยโครงการ Cinder และ HotPy

นอกจากนี้ ภายในโครงการ nogil งานกำลังดำเนินการในโหมดทดลองสำหรับการสร้าง CPython โดยไม่มีการล็อกล่ามส่วนกลาง (GIL, Global Interpreter Lock) ซึ่งไม่อนุญาตให้มีการเข้าถึงแบบขนานไปยังวัตถุที่แชร์จากเธรดที่แตกต่างกัน ซึ่งป้องกันการทำงานแบบขนานบนหลาย ๆ -ระบบหลัก เพื่อเป็นอีกวิธีแก้ไขปัญหา GIL ความสามารถในการผูก GIL ที่แยกจากกันกับล่ามแต่ละตัวที่ทำงานภายในกระบวนการกำลังได้รับการพัฒนา (ล่ามหลายตัวสามารถทำงานในกระบวนการเดียว แต่ประสิทธิภาพของการดำเนินการแบบขนานนั้นขึ้นอยู่กับ GIL)

ที่มา: opennet.ru

เพิ่มความคิดเห็น