نقش PGO در کارآمدی برنامه‌ها - مثلاً بهبود ۴۰ درصدی کارآمدی MariaDB

Profile Guided Optimization یعنی شما اول به کامپایلر می‌گین برنامه رو جوری کامپایل کنه که هنگام اجرا، کد profile بشه و نتیجه‌اش ذخیره بشه. بعد دور دوم که کامپایل می‌کنید، به کامپایلر می‌گین به کمک اون نتیجهٔ پروفایل، کد رو بهینه‌سازی کنه (مثلاً اگه می‌بینه اکثر مواقع مقدار یه متغیر صفر هست، اون مسیر رو یه جور دیگه بهینه‌سازی می‌کنه).
به عنوان مثال، دوستانمون(!) در MariaDB زحمت کشیدن این کار رو انجام دادن، نتیجه‌اش بسیار رضایت‌بخش بوده!



دقت کنید که نکتهٔ کلیدی اینجا توی افزایش کارآمدی، کاهش ۲ درصدی cache miss های پردازنده هست (از ۱۰ درصد به ۸ درصد، یعنی خیلی جا داره که کارآمدیش افزایش پیدا کنه).
1 پسندیده