PHP เป็นสถาปัตยกรรมอะไรที่ใช้ร่วมกัน ที่มีข้อดีและข้อเสีย
ข้อเสียอย่างหนึ่งคือมันไม่ง่ายที่จะทำสิ่งนี้ มีสถานะไม่มากนักที่สามารถเก็บไว้ที่ไหนสักแห่ง
ฉันทำการทดสอบอย่างรวดเร็วและเมื่อลงชื่อเข้าใช้แล้ว Boostrap ดูเหมือนจะใช้เวลาประมาณ 17% ของเวลาทั้งหมดและมากกว่า 50% นั้นกำลังโหลดไฟล์. mod และ. inc ทั้งหมด นั่นไม่ใช่สิ่งที่คุณสามารถเก็บไว้ใน memcache นอกจากนี้ดูเหมือนว่าจะไม่สำคัญหากฉันใช้ memcache หรือแคชฐานข้อมูล
ฉันพยายามรับผลลัพธ์บางอย่างเมื่อเปิดใช้งานแคชหน้า แต่ Xhprof ดูเหมือนจะไม่ส่งคืนผลลัพธ์ที่เชื่อถือได้ ดูเหมือนว่าทั้งหมดจะเร็วเกินไป แต่ถึงอย่างนั้นส่วนที่ใหญ่ที่สุดเกี่ยวข้องกับการเรียกใช้ hooks init / exit และโหลดไฟล์ ฉันพบปัญหาที่น่าสนใจที่นั่น: ดูเหมือนว่าโมดูลผู้ใช้กำลังชะลอการตอบสนองของหน้าที่แคชไว้อย่างจริงจังเนื่องจากจะเรียกรีจิสทรีเนื่องจากตัวควบคุมเอนทิตีในไฟล์. โมดูล
ที่กล่าวว่าเดวิดสเตราส์แสดงให้เห็นงานทดลองในโคเปนเฮเกนที่ซึ่งเขาสร้างสแนปช็อตหน่วยความจำหลังจากทำการบู๊ตแล้วกลับไปที่หน้านั้นทันทีที่ได้รับหน้า เขาใช้ Drupal 6 เพื่อสิ่งนั้น หลังจากดูตัวเลขด้านบนแล้วฉันจินตนาการว่าประสิทธิภาพที่เพิ่มขึ้นจากการทำสิ่งนี้ใน Drupal 7 จะเล็กลงเล็กน้อย เหตุผลหนึ่งก็คือการเชื่อมต่อฐานข้อมูลนั้นขี้เกียจโหลด (และคุณสามารถเข้าถึงได้ค่อนข้างไกลใน bootstrap เมื่อใช้เช่น Memcache ก่อนที่คุณจะต้องเรียกใช้คิวรีแรก) และมีแคชจำนวนมาก
สิ่งที่แย่จริงๆใน Drupal 7 คือเลเยอร์เรนเดอร์ที่มีอาร์เรย์ขนาดใหญ่เหล่านี้และการวนซ้ำและลูปที่ไม่มีที่สิ้นสุด นั่นเป็นการยกเลิกการแสดงทั้งหมดที่เข้าสู่ Drupal 7 มาดูกันว่ามันมีลักษณะอย่างไรใน Drupal 8 ถ้า Twig ทำให้มันกลายเป็นแกนกลาง
สุดท้ายเกี่ยวกับข้อดีดังกล่าว ข้อดีอย่างหนึ่งคือการที่หน่วยความจำค่อนข้างไม่สำคัญเพราะทุกอย่างเป็นอิสระหลังจากการร้องขอแต่ละครั้ง ฉันเห็นแอปพลิเคชั่น Java จำนวนมากที่การใช้หน่วยความจำเพิ่มขึ้นอย่างต่อเนื่องและต้องรีสตาร์ทเป็นประจำ