Возможно ли иметь постоянный сеанс PHP для более быстрой доставки веб-страниц? - PullRequest
3 голосов
/ 16 августа 2011

Ну, если быть точным, я использую собственную систему управления контентом , работающую на Linux-сервере Apache2 MySQL.Система сравнима с ядром Linux с модулями.

- (запуск запроса) -

Система запускает свой скрипт init, который заботится о загрузке модулей на основе зависимостей (толькоминимальные модули загружены, в правильном порядке, поэтому он «просто работает», но ничего больше (не загруженные / неиспользуемые модули не загружаются)).

Как только система готова, начинается обработка запроса - все данныезагружается, анализируется, обрабатывается, буферизуется, жуется и т. д., пока у нас не будет полной (x) HTML-страницы.

- (конец запроса) -

После обработки запроса, данные передаются в браузер и система уничтожается.Все это происходит за очень короткое время, но наиболее интенсивным процессором является начальная часть (подготовка системы к использованию).


У меня есть несколько вариантов:

  1. Пусть система будет работать так, как сейчас (и рискует проблемами с производительностью после ее развертывания для реального использования (приблизительно 100-500 запросов / с на систему))
  2. Выполните некоторую предварительную загрузку (подготовка системы вручную, а непусть случится что-нибудь волшебное)
  3. Найдите способ поддерживать систему в состоянии готовности к использованию (все модули загружены, классы инициализированы, готово соединение MySQL и т. д.)

Вопрос:

  • Есть ли способ выполнить пункт 3?(пункт 2 - это то, что я хочу меньше всего)
  • Если это возможно, то как?

Спасибо за любые советы, которые укажут мне правильный путь!

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Вероятно, вам нужен PHP APC, eAccelerator или другое расширение, которое анализирует ваш код и сохраняет его в виде байт-кода в памяти, что в ситуациях, когда процессор загружается, может значительно повысить вашу производительность. Похоже, у вас есть знания для настройки такого расширения, я бы порекомендовал вам «APC», который является наиболее используемым и протестированным из всех:

http://en.wikipedia.org/wiki/List_of_PHP_accelerators

Edit: для MySQL я бы использовал "постоянное соединение", которое также может помочь.

0 голосов
/ 16 августа 2011

Вы можете захотеть скомпилировать свой Php в C ++ или Java и повысить производительность, пожертвовав немного. Пойдите, посмотрите википедию для получения дополнительной информации HipHop

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...