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

Выполнение сдвига бит такое же, как умножение на 2 ^ (# бит + 1), поэтому вместо сдвига битов val = val<<8 вы можете просто сделать val = val*256. Смотрите, работает ли это.

16
задан Charles 30 March 2011 в 17:10
поделиться

10 ответов

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

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

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

Когда дело доходит до кэшей: * самый быстрый: eAccelerator * XCache * APC

И: Вы ДЕЙСТВИТЕЛЬНО хотите установить кэш кода операции!

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

Это - продолжительность, которую он взял для вызова домашней страницы Wordpress 10.000 раз.

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

13
ответ дан BlaM 30 March 2011 в 17:10
поделиться

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

5
ответ дан airrob 30 March 2011 в 17:10
поделиться

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

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

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

3
ответ дан Vincent 30 March 2011 в 17:10
поделиться

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

btw кэш-память включилась в различный проект теперь, я забываю имя, но Google скажет Вам.

2
ответ дан Andrew Grant 30 March 2011 в 17:10
поделиться

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

2
ответ дан dragonmantank 30 March 2011 в 17:10
поделиться

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

1
ответ дан Brendon-Van-Heyzen 30 March 2011 в 17:10
поделиться

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

1
ответ дан Steve Clay 30 March 2011 в 17:10
поделиться

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

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

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

0
ответ дан Matt Sheppard 30 March 2011 в 17:10
поделиться

Вы проверили Phalanger? Это компилирует PHP в код.NET. Вот некоторые сравнительные тесты , которые показывают, что это может существенно улучшить производительность.

0
ответ дан Eldros 30 March 2011 в 17:10
поделиться

Я использую 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
ответ дан John Douthat 30 March 2011 в 17:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: