ส่วนขยาย Magento ตัวไหนที่ทำให้ร้านของคุณช้าลง?

เลิกเดาสุ่มได้แล้ว

ร้านที่ทำงานช้า มักเกิดจากการมีส่วนขยาย (extensions) มากเกินไป คนส่วนใหญ่มักจะไล่ปิดทีละตัวเพื่อหาปัญหา แต่นี่ไม่ใช่การดีบั๊ก (debugging) แต่มันคือการเดาสุ่มบนเว็บไซต์ที่ใช้งานจริง

Magento 2 ช่วยให้คุณวัด "ต้นทุน" (cost) ของส่วนขยายได้ โดยคุณต้องตรวจสอบใน 4 ด้านนี้:

อย่าเดา ให้ใช้ profiler ที่มีมาให้เพื่อหาความจริง

รันคำสั่งนี้: bin/magento dev:profiler:enable

โหลดหน้าที่ทำงานช้า แล้วมองหา method ที่ถูกเรียกใช้งานบ่อยเกินไป หากมี method ใดถูกเรียกถึง 1,400 ครั้ง นั่นคือปัญหาแล้ว

เพื่อข้อมูลที่แม่นยำยิ่งขึ้น ให้ใช้ Blackfire, Xdebug หรือ New Relic โดย Blackfire จะแสดงให้เห็นชัดเจนว่า vendor namespace แต่ละตัวใช้เวลาไปเท่าไหร่

คุณยังสามารถหาจุดที่ module เข้าไปเชื่อมต่อ (hook) ได้ด้วยการค้นหาไฟล์ของคุณ:

เพื่อหา plugins: grep -rl "<plugin" vendor/*/module-*/etc/ app/code/*/*/etc/

เพื่อหา observers: grep -rl "<observer" vendor/*/module-*/etc/ app/code/*/*/etc/

เมื่อคุณพบตัวต้องสงสัยแล้ว ให้ใช้วิธีการทางวิทยาศาสตร์:

  1. วัดความเร็วของหน้าเว็บในขณะที่เปิดใช้งาน module นั้นอยู่
  2. ปิดการใช้งาน module ตัวนั้น
  3. วัดความเร็วของหน้าเว็บอีกครั้ง

ผลต่างที่ได้คือต้นทุนที่แท้จริงของ module นั้น

เมื่อคุณพบ module ที่ทำงานช้า คุณมี 3 ทางเลือก:

เลิกปฏิบัติกับเรื่องประสิทธิภาพเหมือนเป็นเรื่องเล่าต่อๆ กันมา แต่จงใช้ข้อมูลในการแก้ไขร้านของคุณ

Source: https://dev.to/iamrobindhiman/which-magento-extension-is-slowing-you-down-stop-guessing-1mj3