PHP APC, научи меня - PullRequest
       9

PHP APC, научи меня

13 голосов
/ 23 мая 2009

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

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

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

Спасибо!

Ответы [ 3 ]

9 голосов
/ 23 мая 2009

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

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

9 голосов
/ 23 мая 2009

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

2 голосов
/ 23 мая 2009

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

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

...