انحدار في تحسين أداء كلانغ: تسبب الدوال المضمنة في انخفاض الأداء في اختبار مقاييس الأداء بلغة ++C

2025-02-19

كشف اختبار مقاييس الأداء بلغة ++C عن انحدار في الأداء في تحسين الدوال المضمنة في كلانغ. عندما تم تضمين الدالة `increment`، أدت أخطاء التنبؤ بالفروع إلى تباطؤ الأداء بمقدار 5 مرات تقريبًا مقارنة بالإصدار غير المضمن. أكد `perf stat` أن تنبؤات الفروع الخاطئة هي السبب. ومن المثير للاهتمام، أن عملية الترجمة باستخدام مجموعة أدوات Zig حسنت الأداء بشكل كبير، مما يشير إلى وجود انحدار محتمل في كلانغ 19. وقد تم الإبلاغ عن المشكلة في مستودع Clang/LLVM، حيث تشير التحقيقات الأولية إلى وجود توازن بين عمليات تحسين SROA و SimplifyCFG.

التطوير