Загрузка PHP-приложения / фреймворка в память возможна только один раз с помощью FastCGI?

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

Вопрос

У меня сложилось впечатление, что FastCGI позволил вам как бы загрузиться в ваше веб-приложение один раз, а затем вы просто "предоставляете" FastCGI некоторую функцию, например myHandleHTTPRequest($url), который затем вызывался бы всякий раз, когда поступал запрос.Таким образом, вы получите намного более высокую производительность, поскольку ваше приложение постоянно находится в оперативной памяти, не так ли?

Но я начинаю понимать, что это не так.Или я ошибаюсь?

Мне кажется, что PHP загружается с помощью FastCGI, хорошо, и это дает некоторое улучшение, но тогда мой приложение по-прежнему перезагружается при каждом запросе.

Я бы хотел загрузить свое приложение (или прочитать "framework") один раз (а затем перезагружать, скажем, каждые 500 запросов или около того.) Могу ли я это сделать?

Редактировать:Этот вопрос был перефразирован в следующий: Пользовательский интерфейс PHP FastCGI

Это было полезно?

Решение

Да, вы можете сделать это, более или менее забыв обо всех необычные вещи для интеграции с PHP (это то, что дает вам PHP-интерпретатор общего назначения как FastCGI) и написание вашего приложения как сервера FastCGI само по себе.

Это своего рода совершенно другая тема, но вы, возможно, захотите изучить как приложения Perl справляются с этим в качестве проводника.

Другие советы

Что делает fastcgi, так это избегает создания интерпретатора php для каждого запроса (как это делает cgi).Это экономит огромное количество времени обработки, поскольку интерпретатор php хранится в памяти, более или менее подобно mod_php.

Что вы можете сделать для повышения производительности, так это:

  1. Использование БТР, или xcache и т.д., Который прозрачно прекомпилирует каждый php-файл, избегая повторной компиляции при каждом запросе.
  2. Кэширование.Apc и другие предоставляют механизмы для хранения переменных со сроком службы, который охватывает даже промежутки между запросами.Это может быть использовано для обмена обработанными данными между запросами и хранения данных приложения в памяти.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top