أي إضافة Magento تبطئ متجرك؟
توقف عن التخمين.
غالباً ما يحدث بطء المتجر بسبب كثرة الإضافات. يقوم معظم الأشخاص بتعطيلها واحدة تلو الأخرى للعثور على المشكلة. هذا ليس تصحيحاً للأخطاء (debugging)، بل هو مجرد تخمين على موقع حي.
يتيح لك Magento 2 قياس تكلفة الإضافة. عليك النظر في أربعة مجالات:
- Plugins: تضيف كل إضافة طبقة إلى الطلب. وجود العديد من الإضافات في المسارات السريعة يؤدي إلى طلبات بطيئة.
- Observers: يعمل المراقب (observer) المرتبط بحدث شائع في كل صفحة.
- Layout: تقوم الوحدات (modules) بحقن كتل (blocks) في حاويات مشتركة، وتعمل هذه الكتل حتى عندما لا تكون بحاجة إليها.
- Queries: يمكن لعملية بحث إضافية واحدة لكل عنصر أن تؤدي إلى مئات الاستعلامات الإضافية في صفحة واحدة.
لا تخمن. استخدم الـ profiler المدمج لمعرفة الحقيقة.
قم بتشغيل هذا الأمر:
bin/magento dev:profiler:enable
قم بتحميل صفحة بطيئة. ابحث عن الدوال (methods) التي يتم استدعاؤها مرات كثيرة جداً. استدعاء الدالة 1,400 مرة يعد مشكلة.
للحصول على بيانات أفضل، استخدم Blackfire أو Xdebug أو New Relic. يوضح لك Blackfire بالضبط مقدار الوقت الذي يستهلكه الـ vendor namespace.
يمكنك أيضاً معرفة أين تتدخل الوحدات (modules) من خلال البحث في ملفاتك:
للعثور على الـ plugins:
grep -rl "<plugin" vendor/*/module-*/etc/ app/code/*/*/etc/
للعثور على الـ observers:
grep -rl "<observer" vendor/*/module-*/etc/ app/code/*/*/etc/
بمجرد العثور على المشتبه به، استخدم المنهج العلمي:
- قم بقياس سرعة الصفحة والوحدة (module) مفعلة.
- قم بتعطيل تلك الوحدة تحديداً.
- قم بقياس سرعة الصفحة مرة أخرى.
الفرق هو التكلفة الحقيقية لتلك الوحدة.
عندما تجد وحدة بطيئة، لديك ثلاثة خيارات:
- تغيير النطاق (scope): استخدم
di.xmlلتقييد الـ plugin بمناطق محددة. - استبدال المنطق (logic): اكتب وحدة خفيفة (thin module) خاصة بك لاستبدال الـ around plugin الثقيل.
- إزالتها: إذا كانت التكلفة أعلى من القيمة، فقم بحذفها.
توقف عن التعامل مع الأداء كأنه مجرد أساطير. استخدم البيانات لإصلاح متجرك.
المصدر: https://dev.to/iamrobindhiman/which-magento-extension-is-slowing-you-down-stop-guessing-1mj3