ประสิทธิภาพของ webman
กระบวนการการดำเนินการของเฟรมเวิร์กแบบดั้งเดิม
- Nginx/Apache รับคำขอ
- Nginx/Apache ส่งคำขอไปที่ php-fpm
- PHP-FPM สร้างสภาพแวดล้อม เช่น การสร้างรายการตัวแปร
- PHP-FPM เรียกใช้ RINIT ของส่วนขยาย/โมดูลต่าง ๆ
- PHP-FPM อ่านไฟล์ PHP จากดิสก์ (สามารถหลีกเลี่ยงการใช้ opcache)
- PHP-FPM วิเคราะห์ซึ่งรูปแบบไวยากรณ์และคอมไพล์เป็น opcode (สามารถหลีกเลี่ยงการใช้ opcache)
- PHP-FPM ประมวลผล opcode รวมถึง 8.9.10.11
- เฟรมเวิร์กสร้างสภาพแวดล้อม เช่น การสร้างคลาสต่าง ๆ เช่นคอนเทนเนอร์, คอนโทรลเลอร์, เส้นทาง, มิดเดิลแวร์ เป็นต้น
- เฟรมเวิร์กเชื่อมต่อฐานข้อมูลและตรวจสอบสิทธิ์การเชื่อมต่อ redis
- เฟรมเวิร์กประมวลผลตรรกะธุรกิจ
- เฟรมเวิร์กปิดการเชื่อมต่อฐานข้อมูลและ redis
- PHP-FPM ปล่อยทรัพยากร, ทำลายค่าที่กำหนดไว้, ทำลายอินสแตนซิมโบล, เป็นต้น
- PHP-FPM เรียกใช้เมทอด RSHUTDOWN ของส่วนขยาย/โมดูลต่าง ๆ ตามลำดับ
- PHP-FPM ส่งผลลัพธ์กลับไปที่ Nginx/Apache
- Nginx/Apache ส่งผลลัพธ์กลับไปยังไคลเอนต์
กระบวนการการดำเนินการของ webman
- เฟรมเวิร์กรับคำขอ
- เฟรมเวิร์กประมวลผลตรรกะธุรกิจ
- เฟรมเวิร์กส่งผลลัพธ์กลับไปที่ไคลเอนต์
ใช่ โดยไม่มีการส่งคำขอผ่าน nginx reverse proxy กระบวนการนี้ทำให้เฟรมเวิร์กมีเพียง 3 ขั้นตอนนี้เท่านั้น สามารถว่าเป็นจุดสุดยอดของเฟรมเวิร์ก PHP ซึ่งทำให้ประสิทธิภาพของ webman แตกต่างจากเฟรมเวิร์กแบบดั้งเดิมเป็นหลายเท่าและบางครั้งอาจเป็นหลายสิบเท่าเลย
อ่านเพิ่มเติมได้ที่ การทดสอบการทนทาน