Тест Perl между FCGI и PSGI

Что я знаю о протоколе FCGI, так это то, что при первом вызове приложения оно загружается в память, запускает его, возвращает ответ серверу, завершает ответ, но не завершает приложение, оно продолжает работать в памяти, затем следующие запросы будут использовать эту скомпилированную в памяти копию приложения для обработки запроса.

Читая о протоколе PSGI, похоже, он работает так же.

Мой вопрос, верно ли мое предположение, они одинаковы в отношении скорости приложения к запросам в секунду.

сбивающая с толку проблема также, если они работают одинаково, почему я вижу, что в plackup есть опция командной строки для включения FCGI.

1 ответ

Решение

Вы просите сравнить яблоки и фрукты. Ваш вопрос не имеет особого смысла.

Существуют различные базовые механизмы, которые вы можете использовать для развертывания веб-приложения, написанного на Perl.

  • Это может быть отдельная программа CGI
  • Может работать под mod_perl
  • Может работать под FcGI
  • так далее...

Проблема в том, что для каждого механизма развертывания вам нужно изменить способ написания вашей программы. Это означает, что вам нужно знать, что вы, скажем, нацелены на mod_perl, прежде чем начнете писать код. Это также означает, что перемещение приложения между этими различными методами развертывания нетривиально.

Это проблема, которую решает PSGI. Вместо того чтобы писать приложение CGI, приложение mod_perl или приложение FCGI, вы пишете приложение, предназначенное для протокола PSGI. Вы можете развернуть точно такое же приложение в CGI, mod_perl или FcGI (или во многих других методах развертывания).

Если вы развернете приложение PSGI с помощью обработчика FCGI, то оно будет работать так же, как приложение FCGI. Но позже его легко переместить в приложение mod_perl. Или запустить его как отдельный сервер, используя что-то вроде Starman.

Это помогает вообще?

Другие вопросы по тегам