คำนำ:
ในระหว่างการพัฒนา MooPHP เพื่อที่จะค้นหาวิธีการแคชที่มีประสิทธิภาพมากขึ้น ได้มีการทดสอบวิธีการแคชสองวิธีที่ใช้บ่อยที่สุด
วิธีการแคชทั่วไปใน PHP:
ประการแรกคือการประมวลผลข้อมูลที่จำเป็นต้องแคชและสร้างไฟล์ที่ PHP สามารถดำเนินการได้โดยตรง เมื่อคุณต้องการแคชข้อมูล ให้แนะนำผ่านการรวมและใช้งาน
ประการที่สอง ทำให้ข้อมูลที่ต้องการเป็นอนุกรมผ่านฟังก์ชันทำให้เป็นอนุกรม และบันทึกลงในไฟล์โดยตรง เมื่อคุณต้องการใช้ข้อมูลที่แคชไว้ ให้อ่านเนื้อหาไฟล์ผ่านการดีซีเรียลไลซ์และคัดลอกไปยังตัวแปรที่ต้องการ จากนั้นจึงนำไปใช้
ผลการทดสอบ:
จากการทดสอบ เราพบว่าวิธีที่สองของการแคชข้อมูลผ่านซีเรียลไลซ์นั้นมีประสิทธิภาพมากกว่า (ข้อมูลถูกละเว้น และที่อยู่บทความมีให้ดาวน์โหลดในตอนท้าย ดังนั้นคุณสามารถทดสอบได้ด้วยตัวเอง)
การวิเคราะห์เหตุผล:
เมื่ออ่านแคชในโหมดรวม PHP จำเป็นต้องดำเนินการหลายอย่าง
1. อ่านไฟล์
2. แยกวิเคราะห์ไฟล์ที่รวมอยู่
3. การดำเนินการ เมื่อกำหนดค่าให้กับตัวแปร
และอ่านแคชโดยใช้ซีเรียลไลซ์:
1.อ่านข้อมูล
2. ดีซีเรียลไลซ์เนื้อหาข้อมูล
3. กำหนดค่าให้กับตัวแปร
จากการเปรียบเทียบข้างต้น อาจเป็นเพราะเวลาที่ต้องใช้ในการแยกวิเคราะห์อาร์เรย์ในไฟล์ PHP เกินเวลาที่ต้องใช้ในการยกเลิกการซีเรียลไลซ์อาร์เรย์ หากคุณสนใจ คุณสามารถดู "การวิจัยประสิทธิภาพการทำงานของฟังก์ชันที่เกี่ยวข้องกับระบบไฟล์ PHP และรวม need": http://www.ccvita.com/163.html
รหัสไฟล์ทดสอบ:
ที่อยู่การดาวน์โหลด: MooPHP-CacheTest.zip
ที่อยู่เดิม: http://www.ccvita.com/311.html ผลการวิจัยใหม่จะได้รับการอัปเดตที่นี่
CacheTest_IncludeFile.php
การวิเคราะห์สรุป
CacheTest_SerializeFile.php
:
ประการแรก ข้อดีของการรวมการแคช: เพิ่มการรักษาความลับและความปลอดภัยของข้อมูล และเนื้อหาที่แคชไว้จะไม่ถูกค้นพบโดยโลกภายนอก
ข้อเสีย: ค่อนข้างช้า
วัตถุประสงค์: บันทึกข้อมูลที่ห้ามมิให้เปิดเผยภายนอกระบบ เช่น การตั้งค่าระบบเว็บ หรือแม้แต่ข้อมูล MySQL ประการที่สอง ข้อดีของวิธีซีเรียลไลซ์แคชคือเร็วกว่า
ข้อเสีย: หากเส้นทางไฟล์ของระบบแคชถูกเปิดเผย เนื้อหาแคชจะรั่วไหล
วัตถุประสงค์: สามารถใช้วิธีนี้เมื่อแคชบทความล่าสุด บทความที่เกี่ยวข้อง ฯลฯ เมื่อคุณไม่ต้องกังวลกับข้อมูลที่ได้รับจากภายนอก
หมายเหตุ:
เมื่อติดตั้งแคชหน่วยความจำ PHP เช่น ea และ apc วิธีแรกในการอ่านแคชผ่านการรวมจะเร็วกว่าวิธีที่สองในการทำให้แคชเป็นอนุกรม ดังนั้นในกรอบงาน MooPHP เราจึงแคชข้อมูลที่ไม่ละเอียดอ่อนด้วยวิธีที่สอง ข้อมูลที่ละเอียดอ่อนจะถูกแคชด้วยวิธีแรก สำหรับข้อมูลเบื้องต้นเกี่ยวกับ MooPHP โปรดดูบทความ "ข้อมูลเบื้องต้นเกี่ยวกับกรอบงาน MooPHP" (ที่อยู่: http://www.ccvita.com/295.html )