Требует ли добавления Memcached / APC повторной записи кодов? - PullRequest
0 голосов
/ 16 апреля 2011

Я планирую добавить APC или MEMCACHED в мой PHP-код!Мой вопрос: нужно ли переписывать весь код?как я заглянул в руководство по PHP, и там я получил этоboost!

Понятия не имею по поводу APC / Memcache, поэтому любые обсуждения по этому поводу приветствуются

Ответы [ 2 ]

1 голос
/ 16 апреля 2011

Сначала вы получите повышение производительности только за установку APC.Когда скрипт выполняется, он запускается через Zend_Compile, который превращает ваш PHP-код в OPCODES, который затем запускается через Zend_Execute для запуска.Процесс превращения PHP в OPCODES идентичен при каждой загрузке страницы, поэтому повторять его в следующий раз - пустая трата времени.APC (Alternative PHP Cache) сохраняет эти коды операций в памяти, поэтому в следующий раз он может пропустить этот шаг и ускорить загрузку страницы.

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

Низко висящие плоды для повышения производительности:

  • Найдите вещи, которые много загружены, например, домашнюю страницу.Перепишите этот контроллер с помощью дополнительной функции, которая проверяет, есть ли данные в кэше, и использует их, если они доступны.Если нет, загрузите его по-старому и сохраните в кеше.Помните, что вы можете помещать массивы и объекты в оба этих хранилища данных, поэтому это должно быть довольно быстро.
  • Посмотрите на запросы к базе данных, выполнение которых занимает много времени, также кешируйте их.
  • Найдите другие вычислительно дорогие вещи для кеширования, они будут сильно зависеть от вашего конкретного приложения.
1 голос
/ 16 апреля 2011

С APC вы сначала получаете кэш кода операции - для этой части вам нечего изменить в вашем коде: просто установите расширение и включите его.

Кэш кодов операций, как правило, ускоряет работу: он предотвращает повторную компиляцию сценариев PHP, сохраняя коды операций - результат компиляции файлов PHP - в памяти.


Затем APC и memcached позволяют хранить данные в памяти; обычно это используется для кэширования результата длительных / дорогостоящих операций (например, сложные запросы SQL, вызовы веб-сервисов, ...) .

В этом нет никакой магии: вам придется немного кодировать, хранить данные в кеше и извлекать их из него - делая длинную / дорогостоящую операцию, если данные не находятся в кеше или кеше истек.


Вот пара вопросов / ответов, которые могут дать вам дополнительную информацию:

...