أداء 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
- يستقبل الإطار الطلب
- ينفذ الإطار منطق الأعمال (bytecode opcode)
- يعيد الإطار النتيجة إلى العميل
نعم، في حالة عدم وجود وكيل عكسي لـ nginx، يحتوي الإطار على هذه الخطوات الثلاث فقط. يمكن القول إن هذا يمثل أقصى ما يمكن تحقيقه في أطر PHP، مما يجعل أداء webman أسرع بأضعاف المضاعفة بل وعشرات المرات مقارنة بالأطر التقليدية.
لمزيد من المعلومات، راجع اختبار الضغط