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






В зависимости от того, какая часть вашего PHP-кода действительно выполняется и сколько времени занимает это выполнение, они могут быть действительно большим выигрышем. Это, конечно, не повредит, но результат, который вы увидите, будет во многом зависеть от того, где вы сейчас проводите время.
btw mmcache теперь перенесен в другой проект, я забыл название, но Google скажет вам.
Оба интересны и обеспечат повышение скорости, поскольку они компилируют исходный код в двоичное представление, которое затем выполняется движком PHP.
Любой огромный веб-сайт, работающий с PHP (например, Facebook), использует какую-то систему кеширования кодов операций, такую как MMCache.
Проблема в том, что их не так просто настроить в зависимости от вашей системы.
MMCache устарел. Я рекомендую либо http://pecl.php.net/package/APC, либо http://xcache.lighttpd.net/, оба из которых также предоставляют вам хранилище переменных (например, Memcache).
Вы проверили Фалангер? Он компилирует PHP в код .NET. Вот некоторые тесты, который показывает, что он может значительно улучшить производительность.
Некоторое время назад я использовал Zend Accelerator (2004 год). Это, безусловно, дало значительный выигрыш в производительности кода, с которым он мог работать, но, к сожалению, система, которую я использовал, была спроектирована так, чтобы довольно часто динамически загружать код, а затем оценивать его, с чем Zend Accelerator в то время мало что мог поделать (и я '' Я догадываюсь, все равно не могу).
С другой стороны, мы, безусловно, заметили некоторые проблемы с кешированием (где код будет меняться, но скомпилированная версия синхронизируется с изменением по той или иной причине). Я полагаю, что к настоящему времени эти проблемы, вероятно, уже решены.
В любом случае, у меня нет точных сравнительных цифр, и, конечно же, я не писал одну и ту же систему в разных средах для сравнения, но для подавляющего большинства систем PHP не собирается убивать вас с точки зрения производительности.
Я использую APC на своих производственных серверах, и он отлично работает прямо из коробки. Скомпилируйте его и добавьте в PHP, и вам не нужно будет ничего настраивать. Я проверяю его время от времени, просто чтобы просмотреть статистику, но поскольку я использую MVC, все основные файлы (маршрутизаторы, контроллеры и т. д.) Редко меняются изо дня в день, поэтому код остается скомпилированным и работает довольно эффективно. .
в настоящее время мы используем apc, бесплатно, и это было просто plug and play на наших живых серверах. Обеспечил огромный прирост производительности нашего сайта, особенно по мере увеличения размера проекта. У меня также отключен apc.stat, поэтому он не проверяет, был ли обновлен код, поэтому всякий раз, когда нам нужно обновить код на действующем сайте, мы перезапускаем apache.
Обратите внимание, что Zend Optimizer и MMCache (или аналогичные приложения) - это совершенно разные вещи. Пока Zend Optimizer пытается оптимизировать код операции программы, MMCache кэширует сценарии в памяти и повторно использует предварительно скомпилированный код.
Некоторое время назад я провел несколько тестов, и вы можете найти полученные результаты в моем блоге (правда, на немецком языке). Основные результаты:
Сам по себе Zend Optimizer совсем не помог. На самом деле мои скрипты были медленнее, чем без оптимизатора.
Что касается кешей: * самый быстрый: eAccelerator * XCache * БТР
И: вы НЕОБХОДИМО установить кеш кода операции!
Это время, которое потребовалось, чтобы вызвать домашнюю страницу wordpress 10 000 раз.
Редактировать: Кстати, eAccelerator содержит сам оптимизатор.
Я использую 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. Когда вы делаете меньше вызовов БД, вы увидите, что прирост производительности кешей опкодов будет еще более значительным.
согласовано. У меня были и другие тесты. Но я решил пойти на "реальный" пример;)
Вы должны изменить заголовок на «Ускоренный PHP». Речь идет совсем не о компиляторах, хотя есть много вопросов о компиляции PHP.