APC – это аббревиатура от
Alternative PHP Caching. Русским
текстом – это альтернативный PHP кэшер. Для чего он используется? Как и другие популярные кэшеры,
такие как XCache и eAccelerator, он используется для увеличения скорости работы
PHP скриптов.
Если вы имеете собственный сервер, и вас волнуют вопросы быстродействия PHP скриптов,
то APC может стать решением вашей проблемы. В сегодняшней статье мы более
подробно узнаем о APC, научимся
его устанавливать и тестировать, использовать APC кеширование
при написании PHP скриптов.
Что такое акселератор APC?
Акселератор APC (Alternative PHP Cache)
- бесплатный и открытый opcode
кэшер для PHP. Он был
задуман, как бесплатный, открытый и стабильный фреймворк для кэширования и
оптимизации исходного кода PHP.
APC находится
на стадии своего развития. На данный
момент поддерживает PHP 4 и PHP
5, включая 5.3. Предположительно будет включен в стандартное ядро PHP шестой версии.
Каким образом
достигается ускорение работы PHP?
Когда идет задержка загрузки вашего сайта, возникает вопрос –
Почему? Дело в том, что при выполнении стандартного обращения к PHP скрипту,
каждый раз он компилируется заново. То есть, одна и та же работа делается
несколько раз. Если это маленький проект, замедления в работе могут быть
незначительными, даже невидимыми. Но если у вас большой проект (сайт), то вы
замечали, что при обращении идет задержка загрузки страницы, несмотря на то,
что сайт хорошо оптимизирован, в плане
сжатия
html и
сжатия css. Для наглядности, посмотрим, как
выполняется стандартный запрос без использования PHP акселераторов:
При этом идут выполнения
компиляции кода при
каждом
запросе. Это отнимает много время на обработку запроса, потому и тормозит. Для
обхода этого и придумали акселераторы, представителем которого является APC. Они кэшируют
скомпилированный код на диске, после обращения к которому, он выводит
результат. Таким образом увеличивается скорость работы PHP. APC может работать в двух режимах,
которые настраиваются в файле
/etc/php.d/apc.ini,
переменная
apc.stat. Переменная
может принимать значения 1 и 0 (apc.stat=0 или apc.stat=1). При
использование
режима apc.stat=1 несколько замедляется работа скриптов так, как идет
проверка
на модификацию файла, но это позволяет избежать проблем, когда код
изменен, а выдача результата остается прежней. Поэтому советую поставить
значение переменной
1.
После установки акселератора APC, схема выполнения запроса будет
следующей: