Python 3.15 เปิดตัวแล้ว! ชูโรง JIT เร็วขึ้น พร้อมระบบ Lazy Imports
ทีมพัฒนา Python ประกาศเปิดตัว Python 3.15 ซึ่งเป็นเวอร์ชัน Stable ล่าสุดของภาษาโปรแกรมโอเพนซอร์สยอดนิยม โดยได้รับความสนใจอย่างมากในกลุ่มนักพัฒนาทั่วโลก
การมาถึงหนึ่งปีหลังจาก Python 3.14 มีการปรับปรุงที่น่าสังเกตเกี่ยวกับ JIT compiler ในขั้นทดลอง ซึ่งบนระบบ x86-64 Linux คอมไพเลอร์ที่อัปเกรดใหม่นี้ให้ประสิทธิภาพดีขึ้น 7-8% (geometric mean) เมื่อเทียบกับ interpreter มาตรฐาน ส่วนบน AArch64 macOS ประสิทธิภาพจะแรงขึ้นถึง 11-12% เมื่อเทียบกับ tail-calling interpreter
ฟีเจอร์สำคัญอีกอย่างคือ explicit lazy imports ที่เปิดตัวผ่าน PEP 810 ซึ่งจะเข้ามาแก้ปัญหาที่ปกติ Python จะโหลดโมดูลทั้งหมดทันทีแม้แอปพลิเคชันยังไม่จำเป็นต้องใช้ ซึ่งมักทำให้การเริ่มต้นทำงาน (Startup time) ช้าลง โดยเฉพาะในแอปพลิเคชันขนาดใหญ่ที่มี dependencies จำนวนมาก
Python 3.15 แก้ไขจุดนี้ด้วยการเพิ่ม keyword ใหม่ lazy เพื่อช่วยให้นักพัฒนาสามารถชะลอการโหลดโมดูลจนกว่าจะมีการเรียกใช้งานครั้งแรก ตัวอย่างเช่นการใช้คำสั่ง lazy import json จะเป็นการประกาศโมดูลไว้โดยยังไม่โหลดเข้าสู่หน่วยความจำทันที แต่การนำเข้าจะสมบูรณ์ก็ต่อเมื่อแอปพลิเคชันมีการเข้าถึงโมดูลนั้นเป็นครั้งแรกจริงๆ
นอกจากนี้ การเปิดตัวเวอร์ชันนี้ยังกำหนดให้ UTF-8 เป็นการเข้ารหัสข้อความ (text encoding) เริ่มต้นตาม PEP 686 การเปลี่ยนแปลงนี้ช่วยเพิ่มความสม่ำเสมอในการทำงานข้ามระบบปฏิบัติการ ลดปัญหาการอ่านค่าภาษาที่ผิดเพี้ยนเมื่อต้องย้ายไฟล์ข้อความไปมาระหว่าง Linux, Windows และ macOS
ในด้านตัวภาษา Python 3.15 ได้แนะนำ built-in types ใหม่สองตัว ได้แก่ frozendict ซึ่งเป็น dictionary แบบไม่สามารถแก้ไขได้ (immutable) ช่วยคงลำดับการแทรกและใช้เป็น hashable object ได้ และตัวที่สองคือ sentinel ที่เป็นกลไกมาตรฐานสำหรับสร้างค่าตัวบ่งชี้ที่ไม่ซ้ำกัน (unique marker values) มักใช้ใน API เพื่อแยกความแตกต่างระหว่าง argument ที่ไม่ได้ส่งมากับ argument ที่ตั้งใจกำหนดเป็น None
นอกเหนือจากตัวภาษาแล้ว ยังมีการแนะนำ package profiling ที่รวมเครื่องมือวิเคราะห์ไว้ในที่เดียว โดยมีไฮไลต์คือ Tachyon ซึ่งเป็น high-frequency statistical sampling profiler ที่ออกแบบมาเพื่อวิเคราะห์โปรเซส Python ที่กำลังทำงานอยู่โดยใช้ทรัพยากรน้อยมาก
Tachyon สามารถเชื่อมต่อกับโปรเซส Python ได้ทันทีโดยไม่ต้องรีสตาร์ทหรือแก้ไขโค้ด รองรับการวิเคราะห์ทั้ง CPU time, wall-clock time และเวลาที่ใช้ในการถือ Global Interpreter Lock นักพัฒนายังสามารถนำข้อมูลมาสร้าง flame graphs เพื่อค้นหาจุดคอขวดของประสิทธิภาพได้อย่างแม่นยำ
สำหรับผู้ใช้ Linux และผู้ดูแลระบบ CPython จะเปิดใช้งาน frame pointers เป็นค่าเริ่มต้นบนแพลตฟอร์มที่รองรับ ทำให้การทำ native stack tracing มีความน่าเชื่อถือสูงขึ้น และเพิ่มความสามารถในการทำงานร่วมกับเครื่องมือ debugging ระดับระบบอย่าง eBPF ได้ดีกว่าเดิม
Python 3.15 ยังขยายการรองรับ free-threaded builds เพื่อให้ Python threads ทำงานได้โดยไม่ต้องมี Global Interpreter Lock (GIL) แบบเดิม โดยมีการนำเสนอ stable ABI สำหรับ free-threaded Python และปรับปรุง C API เพื่อช่วยให้นักพัฒนา extension รองรับโมเดลการทำงานรูปแบบนี้ได้ง่ายขึ้น
การเปลี่ยนแปลงอื่นๆ ยังรวมถึงการปรับปรุงข้อความแจ้งข้อผิดพลาดให้ชัดเจนขึ้น, เพิ่มสีสันใน command-line output, และการเพิ่มประสิทธิภาพ C API โดย Windows binaries 64 บิตอย่างเป็นทางการจะเปลี่ยนมาใช้ tail-calling interpreter ขณะที่ macOS installers จะรวมการรองรับ free-threading มาให้เป็นค่าเริ่มต้น
สำหรับผู้ที่ต้องการสำรวจฟีเจอร์ใหม่ผ่านเกม Barry Warsaw นักพัฒนา Python ได้แนะนำ "whatsnewt" ซึ่งเป็นเกมผจญภัยบนเทอร์มินัลที่มีปริศนา 18 ข้อตามความสามารถของเวอร์ชันใหม่นี้ โดยสามารถเล่นได้ผ่านคำสั่ง:
uvx --python 3.15 whatsnewtสำหรับข้อมูลเพิ่มเติม โปรดอ้างอิงจาก ประกาศการเปิดตัว อย่างเป็นทางการ หรือเอกสารประกอบ What’s New in Python 3.15 ที่รวบรวมรายละเอียดทั้งหมดไว้

ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
