بعد توقف دام ثلاث سنوات في التنمية ، تم نشر إطلاق مشروع بيستون 2 ، ما الذي طورتهلتطبيق عالي الأداء للغة بايثون باستخدام تطورات مشروع LLVM.
التطبيق تبرز لاستخدام تقنيات تجميع JIT الحديثة ويهدف إلى تحقيق أداء عالٍ مشابه للغات النظام التقليدية مثل C ++.
الكود من الإصدارات السابقة بواسطة بيستون تم توزيعه بموجب ترخيص Apache، لكن كود Pyston 2 غير متاح حتى الآن ولم يتم إصدار سوى الإصدارات الجاهزة للاستخدام لـ Ubuntu 18.04 و 20.04 (يتوفر ملف يحتوي على الكود للتنزيل ولكن لا يوجد سوى جزء صغير يحتوي على معلومات تفيد بأن المشروع لا يزال مغلقًا) .
نشر الكود هو جزء من خطط المطورينولكن هذا سوف يتم بعد الانتهاء من تشكيل نموذج العمل للشركة الجديدة وتقرر مواصلة تطوير Pyston بدون دعم مالي من Dropbox.
حول بيستون 2
على عكس الإصدارات السابقة ، تم وضع علامة Pyston 2 على أنها مستقرة وليس كنسخة تجريبية. تم إنجاز الكثير من العمل لتحسين الأداء وأصبح Pyston 2 الآن أسرع من Python 3.8 الأصلي بحوالي 20٪ عند اجتياز مجموعة اختبار Python-macrobenchmarks.
تظهر أبرز مكاسب الأداء في أعباء عمل تطبيقات الويب المتأصلة. في اختبارات منفصلة مثل chaos.py و nbody.py ، تفوق Pyston 2 على Python 3.8 بعامل 2. تكلفة استخدام JIT هي زيادة طفيفة في استهلاك الذاكرة.
نحن متحمسون جدًا لإصدار Pyston v2 ، وهو تطبيق أسرع ومتوافق للغاية للغة برمجة Python. الإصدار 2 أسرع بنسبة 20٪ من Python 3.8 القياسي في علامات الفرشاة الكبيرة الخاصة بنا. الأهم من ذلك ، أنه من المحتمل أن يكون أسرع في التعليمات البرمجية الخاصة بك. يمكن أن يقلل Pyston v2 من تكاليف الخادم ، ويقلل فترات انتقال المستخدم ، ويحسن إنتاجية المطورين.
من السهل تنفيذ Pyston v2 ، لذلك إذا كنت تبحث عن أداء أفضل في Python ، فننصحك بأخذ خمس دقائق وتجربتها. يعد القيام بذلك أحد أسهل الطرق لتسريع مشروعك.
من حيث التوافق مع لغة Python الأصلية ، مشروع Pyston يوصف بأنه التطبيق البديل الأكثر توافقًا لـ CPython، نظرًا لأن Pyston هو مفترق لقاعدة بيانات CPython الرئيسية
بيستون يدعم جميع وظائف CPython ، بما في ذلك واجهة برمجة التطبيقات C لتطوير امتدادات C. تم تطوير Pyston في الأصل بواسطة Dropbox ، والتي قررت في عام 2017 وقف التطوير الداخلي. في أوائل عام 2020 ، أسس كبار مطوري Pyston شركتهم ، وأعادوا اختراع المشروع بالكامل ، وبدأوا العمل في Pyston بدوام كامل.
لم يتم تقديم التفاصيل الفنية حول حشوة Pyston 2 حتى الآن ، ولم يتم ذكر سوى DynASM JIT والتخزين المؤقت المضمّن وتحسينات CPython العامة. استخدم الإصدار السابق من Pyston طريقة JIT واحدة في كل مرة ، على غرار JIT في محركات JavaScript الحديثة.
في JIT ، تم تحليل شفرة Python وترجمتها إلى تمثيل متوسط LLVM (IR ، تمثيل متوسط). علاوة على ذلك ، تمت معالجة تمثيل الأشعة تحت الحمراء في مُحسِّن LLVM وتم تمريره إلى محرك LLVM JIT للتنفيذ ، والذي حوّل تمثيل الأشعة تحت الحمراء إلى رمز الجهاز.
للحصول على معلومات حول أنواع المتغيرات للبرامج في لغة Python الديناميكية ، تم استخدام تقنية التنبؤ الاحتمالي لأنواع الكائنات ، متبوعة بتوضيح الاختيار الصحيح للنوع أثناء التنفيذ.
لذلك ، قام Pyston بتنويع التنفيذ باستمرار بين فرعين: الصيام ، عند تأكيد المعدلات المتوقعة ، والبطيء ، والذي يستخدم في حالة عدم تطابق النوع.
يمكن إنجاز المهمة في الوضع متعدد مؤشرات الترابط ، السماح بالتنفيذ المتوازي للعديد من سلاسل التعليمات البرمجية في لغة Python وخالي من قفل المترجم العام (GIL).
أخيرا إذا كنت تريد معرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.