كيف تتوقع وحدات المعالجة المركزية الحديثة بكفاءة دورات مترجمي بايت كود

2025-07-05

أثناء التحقيق في أداء مترجم بايثون جديد، اكتشف المؤلف أن وحدات المعالجة المركزية الحديثة تستطيع التنبؤ بكفاءة بالقفزات غير المباشرة داخل دورات مترجمي بايت كود. يتم تحقيق ذلك من خلال مُتنبئي الفروع المتقدمين مثل TAGE و ITTAGE. ترسم هذه المُتنبئات خريطة لعداد البرنامج (PC) وتاريخه إلى سلوك التنفيذ السابق، باستخدام العديد من الجداول ذات أطوال التاريخ المتزايدة هندسيًا لاختيار أفضل تنبؤ ديناميكيًا. يستكشف المؤلف تطبيق مبادئ ITTAGE على اختبار الضبابية الموجّه بالتغطية واستكشاف حالة البرنامج، مُقترحًا أن هذا قد يؤدي إلى فهم واستكشاف أفضل للمترجمين الفوريين والبرامج المماثلة.

اقرأ المزيد

زيادة أداء بايثون: قصة التحسينات غير المتوقعة وانحدار LLVM

2025-03-10

أدخل دمج حديث في CPython تطبيقًا جديدًا لمُفسّر التعليمات البرمجية، والذي أظهر في البداية مكاسبًا مثيرة للإعجاب في الأداء بنسبة 10-15٪ عبر معايير مختلفة. ومع ذلك، نشأ هذا التحسن من تجنب انحدار LLVM 19 عن غير قصد. عند مقارنته بخط أساس أفضل (مثل GCC أو LLVM 19 المُحسّن)، ينخفض ​​زيادة الأداء الفعلية إلى 1-5٪ فقط. كشفت أسابيع من التجميع وقياس الأداء وفك التجميع أن قيود LLVM 19 على ازدواجية استدعاءات الذيل تسببت في الانحدار. وعلى الرغم من أن مُفسّر استدعاءات الذيل يُمثل تحسينًا قيمًا، إلا أن هذا الحادث يبرز التحديات في قياس الأداء وهندسة الأداء وهندسة البرمجيات، مثل صعوبة اختيار خطوط الأساس وفهم تعقيدات تحسينات المُجمّع.

اقرأ المزيد
التطوير