تحميل تطبيق / إطار PHP في الذاكرة مرة واحدة فقط ممكنة مع FastCGI؟

StackOverflow https://stackoverflow.com/questions/935071

سؤال

كنت تحت الانطباع بأن FastCGI سمح لك بتحميل كيندا في تطبيق الويب الخاص بك مرة واحدة، ثم "توفر" Fastcgi "مع بعض الوظائف، مثل myHandleHTTPRequest($url), ، من شأن ذلك أن يسمى كلما جاء الطلب. وبهذه الطريقة، يمكنك الحصول على أداء أفضل بكثير حيث أن تطبيقك جاهز في الذاكرة طوال الوقت، أليس كذلك؟

لكنني بدأت أفهم ذلك، أن هذا ليس هو الحال. أم أنا مخطئ؟

يبدو لي أن PHP يجري تحميلها بواسطة fastcgi، حسنا، وهذا يعطي بعض التحسن، ولكن بعد ذلك لي لا يزال يتم إعادة تحميل التطبيق على كل طلب.

أرغب في تحميل التطبيق الخاص بي (أو قراءة "الإطار") مرة واحدة (ومن ثم إعادة التحميل كل طلبات أو نحو ذلك.) هل يمكنني القيام بذلك؟

يحرر: تم إعادة صياغة هذا السؤال في هذا واحد: مخصص PHP Fastcgi واجهة

هل كانت مفيدة؟

المحلول

نعم، يمكنك أن تفعل ذلك، من خلال النسيان أكثر أو أقل من كل يتوهم الاشياء التكامل php (الذي يمنحك ما يعطيك General-Php-PhP-AS-FASTCGI) وكتابة طلبك كخادم FastCGI في حد ذاته.

هذا نوع من موضوع Nother بالكامل، لكن قد ترغب في النظر في كيف بيرل التطبيقات تسير حول هذا الموضوع للحصول على دليل.

نصائح أخرى

ما يفعله Fastcgi هو تجنب التفريخ مترجم PHP لكل طلب (مثل CGI Does). هذا يحفظ كميات هائلة من وقت المعالجة، حيث يتم الاحتفاظ بمفترجم PHP في الذاكرة، أكثر أو أقل مثل mod_php يفعل.

ما يمكنك القيام به لتحسين الأداء هو:

  1. يستخدم APC., أو XCACHACHE، إلخ، الذي يعيد كتابة كل ملف PHP بشفافية، وتجنب إعادة الترجمة على كل طلب.
  2. التخزين المؤقت. توفر APC وغيرها آليات لتخزين المتغيرات مع العمر يمتد حتى بين الطلبات. يمكن استخدام هذا لمشاركة البيانات المعالجة بين الطلبات، والحفاظ على بيانات التطبيق في الذاكرة.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top