PHP APC, воспитывайте меня

В настоящее время я внедряю memcached в свою службу, но то, что продолжает расти, - это предположение, что я также должен реализовать APC для кэширования фактического кода.

Я просмотрел несколько учебных пособий и документацию по PHP, но мой главный вопрос: как его реализовать? в больших масштабах? Документация PHP рассказывает о хранении переменных, но это не так подробно.

Простите меня за то, что я необразован в этой области, но я хотел бы знать, где на реальных сайтах это реализовано. Я буквально кэширую все или только те части, которые используются часто, например, функции?

Спасибо!

Ответы

Ответ 1

Как вы знаете, PHP является интерпретированным языком, поэтому каждый раз, когда запрос поступает на сервер, ему нужно открыть все необходимые и включенные файлы, проанализировать их и выполнить. То, что предлагает APC, - это пропустить шаги require/include и parsing (файлы по-прежнему необходимо, но они хранятся в памяти, поэтому доступ намного быстрее), поэтому сценарии должны быть выполнены. На нашем веб-сайте мы используем комбинацию APC и memcached. APC для ускорения вышеупомянутых шагов и memcached для быстрого и распределенного хранения и доступа к глобальным переменным (предварительно рассчитанные дорогие вызовы функций и т.д., Которые могут совместно использоваться несколькими клиентами в течение определенного времени), а также переменные сеанса. Это позволяет нам иметь несколько интерфейсных серверов без потери состояния клиента, такого как состояние входа и т.д.

Когда дело доходит до того, что вы должны кэшировать... ну, это действительно зависит от вашего приложения. Если у вас есть необходимость в нескольких интерфейсах где-то вниз по линии, я бы попытался пойти с memcached для такого кэширования и хранения и использовать APC в качестве кэша операций операций.

Ответ 2

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

Ответ 3

Вам не нужно реализовывать функции кэширования кода операции APC, вы просто включаете их как php-модуль.

Размер кэша APC и другая информация о конфигурации здесь.