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