
معيار Python 3.15: زيادة طفيفة مقارنة بـ 3.14، وتحسين واضح في JIT
يقارن المعيار غير الرسمي الذي أجراه ميغيل غرينبرغ بين Python 3.15.0rc3 وإصدارات حتى 3.10. الزيادة في الأداء مقارنة بـ 3.14 طفيفة، لكن JIT التجريبي يوفر تسارعاً واضحاً، بينما يتميز free-threading في الاختبارات متعددة الخيوط.
معيار جديد غير رسمي أجراه مهندس البرمجيات ميغيل غرينبرغ يقارن Python 3.15 بإصدارات سابقة حتى 3.10 ويكشف أن الإصدار القادم أسرع قليلاً فقط من سلفه. أبرز تحسين يأتي من مترجم JIT التجريبي، بينما يُظهر free-threading قيمته في الأحمال متعددة الخيوط.
معايير الاختبار
أُجريت الاختبارات على حاسوب محمول يعمل بنظام Linux بمعالج Intel Core i5. تم استخدام برنامجين: fibo.py الذي يحسب أرقام فيبوناتشي بشكل تكراري، وbubble.py الذي يرتب 10 000 رقم عشوائي باستخدام حلقات for. تم تشغيل كل برنامج في وضع أحادي الخيط ورباعي الخيوط، وحُسبت المدد بمتوسط ثلاث عمليات تشغيل. شملت المصفوفة أيضاً PyPy 3.12 وNode.js 26.3 وRust 1.97 للسياق البيئي، بالإضافة إلى CPython 3.13 وإصدارات أحدث من بناءات JIT وfree-threading. فحص المؤلف إصدار 3.15.0rc3 المرشح للإصدار، وفي لحظة الكتابة كان تبقى عدة أيام فقط قبل الإصدار الرسمي لـ 3.15.
نتائج أحادية الخيط
أكمل Python 3.15 اختبار فيبوناتشي في 6,94 ثانية، متفوقاً قليلاً على 3.14 التي احتاجت إلى 7,17 ثانية، وأفضل بكثير من 3.10 التي احتاجت إلى 15,94 ثانية. أظهر اختبار Bubble sort صورة مشابهة: 3.15 في 1,97 ثانية، و3.14 في 2,06 ثانية. في كلا الاختبارين، فقط Python 3.11 و3.14 قدما زيادة كبيرة مقارنة بسلفهما المباشر، بينما أظهرت بعض الإصدارات تراجعاً طفيفاً. ظل PyPy 3.12 أسرع تطبيق لـ Python، حيث كان أسرع 5,54 مرة من 3.15 في اختبار فيبوناتشي، وفي النتائج الإجمالية تصدر Rust بفارق 77,24 مرة.
تفوق مترجم JIT في Python 3.15 على المفسر القياسي لنفس الإصدار بمقدار 1,20 مرة في فيبوناتشي، و1,28 مرة في ترتيب الفقاعات. هذا عكس نتائج السنوات السابقة، حيث لم يكن JIT يتفوق على البناء القياسي. عملت بناءات free-threading في العمل أحادي الخيط بمستوى قريب من المفسر القياسي.
نتائج متعددة الخيوط
المفسر القياسي بأربعة خيوط لا يتغير تقريباً، لأن GIL يمنع التنفيذ المتوازي الحقيقي. بناء free-threading في Python 3.15 اجتاز اختبار فيبوناتشي أسرع بحوالي 4,5 مرة من المفسر القياسي، وهو مشابه لمؤشر 3.14، وكان أسرع أيضاً في ترتيب الفقاعات. حافظ بناء JIT على تفوق مشابه على المفسر القياسي حتى مع عدة خيوط، وهو ما يلاحظه المؤلف كأمر جديد في 3.15.
الاستنتاجات
يعتبر المؤلف أن Python 3.15 يقدم تحسيناً طفيفاً جداً في الأداء مقارنة بـ 3.14، مع إظهار بعض الاختبارات تراجعاً طفيفاً. الميزة الواضحة الوحيدة هي في JIT، الذي لا يزال تجريبياً وغير موصى به للإنتاج. يخطط المؤلف لإبقاء مشاريع الإنتاج على 3.14، واستخدام 3.15 كمفسر يومي من أجل ميزات جديدة مثل توسيع comprehensions بشكل مشابه لـ JavaScript وlazy imports.
المصادر: blog.miguelgrinberg.com
SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي
نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.