Вопрос

Есть ли у кого-нибудь опыт работы с PHP-ускорителями, такими как MMCache или Ускоритель Zend?Я хотел бы знать, делает ли использование любого из этих методов PHP сопоставимым с быстрее веб-технологии.Кроме того, существуют ли компромиссы для их использования?

Это было полезно?

Решение

Обратите внимание, что Zend Optimizer и MMCache (или аналогичные приложения) - это совершенно разные вещи.Пока Zend Optimizer пытается оптимизировать код операции программы, MMCache кэширует скрипты в памяти и повторно использует предварительно скомпилированный код.

Некоторое время назад я провел несколько тестов, и вы можете найти Результаты в моем блоге (правда, на немецком).Основные результаты:

Один только Zend Optimizer совершенно не помог.На самом деле мои скрипты работали медленнее, чем без оптимизатора.

Когда дело доходит до кешей:* самый быстрый: Ускоритель * XCache ( кэширование ) * БТР

И:Вы действительно хотите установить кэш кода операции!

Например:альтернативный текст http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Именно столько времени потребовалось, чтобы вызвать домашнюю страницу WordPress 10 000 раз.

Редактировать: Кстати, eAccelerator сам содержит оптимизатор.

Другие советы

MMCache устарел.Я рекомендую либо то, либо другое http://pecl.php.net/package/APC или http://xcache .lighttpd.net/, оба из которых также предоставляют вам переменное хранилище (например, Memcache).

Оба варианта интересны и обеспечат повышение скорости, поскольку они компилируют исходный код в двоичное представление, которое затем выполняется движком PHP.

Любой огромный веб-сайт, работающий на PHP (Facebook, например), использует какую-то систему кэширования кода операции, такую как MMCache.

Проблема в том, что их не очень легко настроить в зависимости от вашей системы.

В зависимости от того, какая часть вашего PHP-кода на самом деле выполняется и сколько времени занимает это выполнение, они могут стать действительно большим выигрышем.Это, конечно, не повредит, но выгода, которую вы увидите, будет во многом зависеть от того, на что в данный момент тратится ваше время.

кстати, mmcache теперь перенесен в другой проект, я забыл название, но Google вам подскажет.

Я использую APC на своих производственных серверах, и он довольно хорошо работает "из коробки".Скомпилируйте его и добавьте в PHP, и для этого осталось не так уж много настроек.Я проверяю это время от времени, просто чтобы просмотреть статистику, но поскольку я часто использую MVC, все основные файлы (маршрутизаторы, контроллеры и т.д.) Редко меняются изо дня в день, так что код остается скомпилированным и работает довольно эффективно.

в настоящее время мы используем apc бесплатно, и это было всего лишь простое приложение plug and play на наших живых серверах.Обеспечил огромный прирост производительности нашего сайта, особенно по мере увеличения размера проекта.У меня также отключен apc.stat, поэтому он не проверяет, был ли обновлен код, поэтому всякий раз, когда нам нужно обновить код на реальном сайте, мы перезапускаем apache.

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

Если вы используете RedHat или CentOS, установить APC очень просто:

yum install php-devel httpd-devel php-pear
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini
# if you're using SELinux:
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so
/etc/init.d/httpd restart

Вы спрашивали о недостатках.Единственным недостатком является то, что для этого требуется некоторое количество памяти.Значение по умолчанию для APC равно 30 МБ, но его можно настроить, и стоимость небольшого объема памяти с лихвой окупается увеличением скорости и быстродействия.

Тестирование BlaM включало в себя все вызовы базы данных, выполненные WordPress.Когда вы будете выполнять меньше вызовов базы данных, вы увидите, что прирост производительности кэшей кода операции будет еще более значительным.

Я пользовался Zend Accelerator немного раньше (2004 год).Это, безусловно, дало значительный выигрыш в производительности кода, с которым он мог работать, но, к сожалению, система, которую я использовал, была спроектирована так, чтобы довольно часто динамически загружать код и затем оценивать его, с чем Zend Accelerator в то время мало что мог сделать (и, полагаю, до сих пор не может).

С другой стороны, мы, конечно, видели некоторые проблемы с кэшированием (когда код был бы изменен, но скомпилированная версия синхронизировалась с изменениями по той или иной причине).Я полагаю, что к настоящему времени эти проблемы, скорее всего, уже устранены.

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

Вы проверили Фалангера?Он компилирует PHP в .ЧИСТЫЙ код.Вот такие некоторые контрольные показатели которые показывают, что это может значительно повысить производительность.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top