2013-09-15 7 views
6

Можно ли использовать кеш opcode apc, если я могу (не обязательно) иметь уникальный контент для каждого посетителя на той же странице? Я не уверен, что понимаю, как работает opcode. Если только сохранить результат php в кеш и обслуживать его как «html», то это бесполезно для меня. Мне определенно нужно запускать sql-запросы на каждом просмотре страниц. Или это лучший способ оптимизации php? Приложение имеет очень высокую нагрузку - около 1000 просмотров страниц в секунду. Он работает на nginx + php-fpm.Как работает кеш-код операции APC

+2

Кэш-код opcode APC хранит байт-код (коды операций), сгенерированные при скомпилированном PHP-скрипте ... поэтому его можно выполнять снова и снова, не перекомпилируя .... он не генерирует результат выполнения (кроме вы конкретно рассказываете об этом) –

+0

Но это все же всегда хорошая идея для оптимизации самого PHP .... 1000 просмотров страниц в секунду - довольно высокое использование, особенно если вы работаете только на одном сервере, поэтому вам, вероятно, стоит взглянуть на лучшая архитектура исполнителей –

+1

@MarkBaker Я использую 'PHP' с' APC' на одном сервере, обрабатывая 5k -10k rps без проблем и нагрузки на сервер почти .25 Это с 'mysql' чтениями/записью и несколькими .ini и .dat файлами без проблем. Только 4-ядерный сервер с 8 ГБ оперативной памяти. Это все о настройке :) – chillers

ответ

7

Да, вы можете. APC кэширует программу, а не ее результат. Таким образом, код будет выполняться каждый раз, просто «оптимизированным» способом.

+0

Спасибо за легкое и быстрое объяснение :) И если я загружаю новую версию php, а old - в кеш - apc загружает старый код для TTL-времени или файл проверки для новой версии? – stix

+2

По умолчанию APC проверяет, был ли файл обновлен по каждому запросу. Прочтите краткое описание http://www.php.net/manual/en/apc.configuration.php#ini.apc.stat – Alex

1

Как определить, какой ресурс загружен из кэшированных кодов операций или скомпилирован?

Смежные вопросы