Скомпилированный PHP?


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

Author: Charles, 2008-08-16

10 answers

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

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

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

Когда это доходит до тайников: * самый быстрый: ускоритель *XCache * АПК

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

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

Это время, необходимое для вызова домашней страницы WordPress 10 000 раз.

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

 13
Author: BlaM, 2012-04-13 10:09:13

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

 5
Author: airrob, 2008-08-16 03:37:34

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

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

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

 3
Author: Vincent, 2008-08-16 02:34:13

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

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

 2
Author: Andrew Grant, 2008-08-16 01:20:55

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

 2
Author: dragonmantank, 2008-08-17 04:41:36

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

 1
Author: Brendon-Van-Heyzen, 2008-08-17 18:43:18

Я использую 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 МБ, но его можно настроить, и стоимость небольшого объема памяти с лихвой окупается за счет увеличения скорости и скорости отклика.

 1
Author: John Douthat, 2008-08-28 10:30:32

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

 1
Author: Steve Clay, 2008-08-30 18:44:52

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

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

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

 0
Author: Matt Sheppard, 2008-08-16 12:26:06

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

 0
Author: Jon Galloway, 2011-09-15 12:17:30