HeadlinesBriefing HeadlinesBriefing.com

JIT في Python 3.15 مقابل 3.14

Towards Data Science •
×

أعاد الكاتب تشغيل ثلاثة اختبارات أداء بلغة Python من اختبار سابق على Python 3.14 وPython 3.15، مع تفعيل مترجم JIT وتعطيله في كل إصدار. في الجولة السابقة، سرّع مترجم JIT في الإصدار 3.14 حساب مجموعة ماندلبروت بنحو 25%، وحسابات مسافة ليفنشتاين بنسبة 27%، بينما لم تشهد خوارزمية البحث في الرسوم البيانية لدايكسترا أي تحسن.

أعيد بناء مترجم JIT في Python 3.15 بشكل واسع. كان الإصدار 3.14 يتوقع مسارات الشيفرة المحتملة، أما 3.15 فيستخدم واجهة تتبع جديدة تسجل المسار الذي يسلكه البرنامج فعلياً. كما يضيف المحسّن تخصيص السجلات الأساسي، ومزيداً من انتشار الثوابت، وعمليات أقل لعدّ المراجع. وقد تحسّن توليد الشيفرة لمعماريتي x86-64 وAArch64، وتستهلك شيفرة الآلة الناتجة ذاكرة أقل.

يفصل اختبار التهيئات الأربع (3.14 و3.15، مع تفعيل المترجم وتعطيله في كل منهما) بين أثر تغييرات المفسّر في 3.15 وأثر مترجم JIT فيه. وهذا مهم لأن المقارنة المباشرة بين 3.14 و3.15 قد تكون مضللة. كما يتضمن مفسّر 3.15 تغييرات خارج JIT، منها تغيير في المفسّر المستخدم في إصدارات Windows الرسمية 64-bit.

أفاد فريق إصدارات Python بتحسن في المتوسط الهندسي بنسبة 7% إلى 8% مقارنة بالمفسّر القياسي في مجموعة اختبارات Linux على x86-64، وبنسبة 11% إلى 12% على macOS من نوع AArch64. يُحتاج إلى LLVM 21 وقت البناء فقط، لذا لا يحتاج مستخدمو الملفات الثنائية الرسمية إلى تثبيته.

يُظهر إعادة التشغيل أن مترجم JIT الأقوى يفيد أحمال العمل الثلاثة نفسها بشكل أكبر، لكنه لا يفيد كل البرامج، خاصة الشيفرة التي تقضي معظم وقتها في تخصيص الكائنات واستدعاء عمليات مُنفذة في مكان آخر.

المصدر: Towards Data Science · لخّصه HeadlinesBriefing