کدام افزونه Magento سرعت شما را کاهش میدهد؟
حدس زدن را کنار بگذارید.
کندی فروشگاه اغلب به دلیل وجود افزونههای بیش از حد رخ میدهد. بیشتر افراد برای پیدا کردن مشکل، آنها را یکی یکی غیرفعال میکنند. این دیباگ کردن نیست؛ این حدس زدن در یک سایت عملیاتی (live site) است.
Magento 2 به شما اجازه میدهد هزینه (بار پردازشی) یک افزونه را اندازهگیری کنید. باید به چهار حوزه توجه کنید:
- Plugins (پلاگینها): هر پلاگین یک لایه به درخواست اضافه میکند. وجود پلاگینهای زیاد در مسیرهای سریع (fast paths)، باعث ایجاد درخواستهای کند میشود.
- Observers (آبزرورها): یک آبزرور روی یک رویداد (event) رایج، در هر صفحهای اجرا میشود.
- Layout (چیدمان): ماژولها بلوکها را به کانتینرهای مشترک تزریق میکنند. این بلوکها حتی زمانی که به آنها نیاز ندارید، اجرا میشوند.
- Queries (کوئریها): یک جستجوی اضافی برای هر آیتم میتواند صدها کوئری اضافی در یک صفحه ایجاد کند.
حدس نزنید. از پروفایلر داخلی برای یافتن حقیقت استفاده کنید.
این دستور را اجرا کنید:
bin/magento dev:profiler:enable
یک صفحه کند را بارگذاری کنید. به دنبال متدهایی بگردید که بیش از حد فراخوانی شدهاند. فراخوانی شدن یک متد ۱۴۰۰ بار، یک مشکل است.
برای دادههای بهتر، از Blackfire، Xdebug یا New Relic استفاده کنید. Blackfire دقیقاً به شما نشان میدهد که یک vendor namespace چقدر زمان مصرف میکند.
همچنین میتوانید با جستجو در فایلهای خود، محل اتصال (hook) ماژولها را پیدا کنید:
برای یافتن پلاگینها:
grep -rl "<plugin" vendor/*/module-*/etc/ app/code/*/*/etc/
برای یافتن آبزرورها:
grep -rl "<observer" vendor/*/module-*/etc/ app/code/*/*/etc/
وقتی یک مورد مشکوک پیدا کردید، از روش علمی استفاده کنید:
۱. سرعت صفحه را در حالی که ماژول فعال است اندازهگیری کنید. ۲. آن ماژول خاص را غیرفعال کنید. ۳. دوباره سرعت صفحه را اندازهگیری کنید.
تفاوت حاصل، هزینه واقعی آن ماژول است.
وقتی یک ماژول کند پیدا کردید، سه انتخاب دارید:
- تغییر محدوده (Scope): از
di.xmlاستفاده کنید تا پلاگین را به مناطق خاصی محدود کنید. - جایگزینی منطق: یک ماژول سبک (thin module) خودتان بنویسید تا جایگزین یک
around pluginسنگین شود. - حذف آن: اگر هزینه آن بیشتر از ارزشش است، آن را حذف کنید.
با عملکرد (performance) مانند افسانهها برخورد نکنید. از دادهها برای اصلاح فروشگاه خود استفاده کنید.
Source: https://dev.to/iamrobindhiman/which-magento-extension-is-slowing-you-down-stop-guessing-1mj3