การมีโมดูลที่เปิดใช้งานเพิ่มเติมทำให้ไซต์ช้าลงหรือไม่


13

การมีโมดูลที่เปิดใช้งานเพิ่มเติมทำให้ไซต์ช้าลงหรือไม่
ฉันได้ติดตั้ง 30 โมดูลสำหรับเว็บไซต์ของฉันและฉันกลัวว่ามันจะช้าเกินไป

คำตอบ:


11

การมีโมดูลที่เปิดใช้งานมากขึ้นจะทำให้การบูตของ Drupal ช้าลงเนื่องจากมีการโหลดไฟล์และแยกวิเคราะห์มากขึ้น นอกจากนั้นการมีโมดูลที่เปิดใช้งานมากขึ้นไม่ได้หมายความว่าจะมีไซต์ที่ช้ากว่าโดยอัตโนมัติเนื่องจากโมดูลทั้งหมดจะใช้รหัสสำหรับหน้าเว็บที่ร้องขอทุกหน้า

ตัวอย่างเช่นหากคุณติดตั้ง Views และคุณเปิดใช้งานการดูหน้าแรกเท่านั้นวิวจะไม่ถูกดำเนินการเมื่อเพจที่ร้องขอเป็นหน้าโหนด แม้ว่าโมดูล Views จะใช้งานhook_menu_alter()และจะถูกดำเนินการแม้ว่าคุณจะไม่ได้เปิดใช้งานมุมมองใด ๆ ก็ตาม แต่โมดูล Views จะถูกเปิดใช้งาน การนำไปใช้งานใด ๆhook_menu_alter()จะถูกเรียกใช้เมื่อเมนูถูกสร้างขึ้นใหม่และไม่ได้เกิดขึ้นตามคำขอหน้าเว็บทุกหน้า


6
การมีโมดูลจำนวนมากที่ไม่ทำอะไรเลยจะทำให้เว็บไซต์ช้าลงเล็กน้อย มันต้องทำเพื่อวิธีการทำงานของระบบเบ็ด Drupal ทำการเรียกmodule_hookสำหรับทุกโมดูลที่ติดตั้งทุกครั้งที่มีการเรียกใช้ hook การตรวจสอบทั้งหมดเหล่านี้สามารถเพิ่มได้ ในเว็บไซต์ของเรา module_hook ถูกเรียก 13,000 ครั้งและนั่นใช้เวลา 168 มิลลิวินาที ทุก ๆ เล็กน้อยเพิ่มขึ้น
mikeytown2

15

ใช่. อย่างไรก็ตาม 30 ไม่มีอะไรต้องกังวล คุณกำลังมีปัญหาเมื่อคุณไป 100;)

ติดตั้งแคช bytecode (APC หรือ XCache) เพื่อกำจัดการชะลอตัวส่วนใหญ่ของการรวมไฟล์จำนวนมากและตรวจสอบให้แน่ใจว่าได้ลบโมดูลที่ไม่ได้ใช้เป็นระยะ ๆ (โดยปกติทุกโครงการจะรวบรวมโมดูลที่ไม่ได้ใช้ในบางช่วงระหว่างการพัฒนา)


ฉันเห็นว่า Commerce Kickstart ใช้โมดูลตัวควบคุม 96 ตัว
Pere

การติดตั้ง XCache ทำให้หน้าของฉันแสดงผลในครึ่งเวลา ขอบคุณ
cherouvim

1

เพื่อเติมเต็มการตอบสนองของ @Bojan Zivanovic & @kiamlaluno ที่เหมาะสมคุณควรใส่ใจเกี่ยวกับการโต้ตอบของโมดูล การมีโมดูลจำนวนมากเพิ่มความเสี่ยงของการมีปฏิสัมพันธ์ที่ไม่ดี(เช่นการโต้ตอบกับยา) ฉันจะบอกว่ามีมากกว่า 50 โมดูลจะกลายเป็นอันตรายและคุณควรตรวจสอบก่อนว่าคุณไม่ได้ใช้หลายโมดูลสำหรับโดเมนงานเดียวกัน

เป็นตัวอย่างการสร้างหน้าเว็บที่มีบล็อกมุมมองพาเนลฟิลด์ที่มีมุมมองบล็อกที่มีมุมมองบล็อกที่มีพาเนลที่มีมุมมองที่มี ... ความคิดคือการได้รับบางสิ่งที่สมองปกติสามารถเข้าใจได้ . สิ่งนี้มีผลกระทบอย่างมากต่อการแสดงเมื่อพฤติกรรมการโหลดที่ซับซ้อนหลายอย่างถูกซ่อนและล่ามโซ่ อีกตัวอย่างหนึ่งคือการเพิ่มกฎ ACL หลายกฎจากหลายโมดูลสำหรับแต่ละเนื้อหา

หากคุณกลัวการแสดงให้ใช้โมดูลการทำโปรไฟล์และติดตามความแตกต่างเสมอหลังจากการเพิ่มโมดูลใหม่แต่ละครั้ง บางครั้งมีตะขอเล็ก ๆ ที่มี SQL อยู่ภายในหรือเทมเพลตที่กำหนดเองจะช่วยประหยัดเวลาในการสร้างเว็บไซต์ของคุณ


ทำ drupal สำหรับ "สมองปกติ" หรือไม่? :)
pico34

1

สิ่งที่ควรคำนึงถึงสามประการในระหว่างการสร้างเว็บไซต์ที่สามารถเพิ่มความเร็วเว็บไซต์ drupal ของคุณคือ:

  1. ลดจำนวนของโมดูล
  2. ตรวจสอบบันทึกคิวรี mySQL ของคุณเพื่อค้นหาคิวรีช้าและปรับแต่งโค้ด / เพิ่มดัชนีตามที่จำเป็น
  3. การแคช (และหวังว่าผู้ใช้ส่วนใหญ่ของคุณจะไม่ได้รับการรับรองความถูกต้อง)

และเกี่ยวกับส่วนโมดูลเห็นได้ชัดว่าจำนวนโมดูลมากขึ้นช้าลงความเร็วจะเป็นเพราะพวกเขาต้องการแรมขนาดใหญ่ในการประมวลผล ..

ยังโมดูล 30 ถึง 60 จะไม่ส่งผลกระทบต่อเว็บไซต์ของคุณมาก

ปันส่วนสำหรับเวลาของการโหลดเว็บไซต์และจำนวนของโมดูลจะเหมือน 100 โมดูลจะล่าช้าไซต์โดย 350ms ถึง 650ms

หวังว่าคุณจะได้ไซต์ต่อไปที่คุณเก็บไว้ในใจ .. :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.