Выполнение сдвига бит такое же, как умножение на 2 ^ (# бит + 1), поэтому вместо сдвига битов val = val<<8
вы можете просто сделать val = val*256
. Смотрите, работает ли это.
Обратите внимание, что Оптимизатор Зенда и MMCache (или подобные приложения) являются полностью разными вещами. В то время как Оптимизатор Зенда пытается оптимизировать код операции программы, MMCache будет кэшировать сценарии в памяти и снова использовать предварительно скомпилированный код.
я сделал некоторые сравнительные тесты некоторое время назад, и можно найти результаты в моем блоге (на немецком языке хотя). Основные результаты:
один только Оптимизатор Зенда не помог вообще. На самом деле мои сценарии были медленнее, чем без оптимизатора.
Когда дело доходит до кэшей: * самый быстрый: eAccelerator * XCache * APC
И: Вы ДЕЙСТВИТЕЛЬНО хотите установить кэш кода операции!
, Например: сопроводительный текст http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png
Это - продолжительность, которую он взял для вызова домашней страницы Wordpress 10.000 раз.
Редактирование: BTW, eAccelerator содержит сам оптимизатор.
MMCache был удержан от использования. Я рекомендую или http://pecl.php.net/package/APC или http://xcache.lighttpd.net/ , оба из которых также дают Вам переменное устройство хранения данных (как Кэш-память).
Оба интересны и обеспечат повышение скорости, так как они компилируют исходный код в двоичное представление, которое тогда выполняется механизмом PHP.
Любой огромный веб-сайт, работающий с PHP (Facebook, например), выполняет своего рода систему кэша кода операции как MMCache.
проблема состоит в том, что их не очень легко настроить в зависимости от Вашей системы.
В зависимости от того, сколько из Вашего кода PHP на самом деле выполняется и сколько времени то выполнение берет, они могут быть действительно большой победой. Это, конечно, не собирается причинять боль, но усиление, которое Вы видите, будет очень зависеть от того, где Ваше время в настоящее время проводится.
btw кэш-память включилась в различный проект теперь, я забываю имя, но Google скажет Вам.
Я использую APC на своих рабочих серверах, и он работает вполне прилично из поля. Скомпилируйте его и добавьте его к PHP и нет большой тонкой настройки, оставленной сделать для него. Я проверяю его время от времени только для рассмотрения статистики, но так как я использую MVC много, все основные файлы (маршрутизаторы, контроллеры, и т.д.) редко изменяются на ежедневной основе так, чтобы код остался скомпилированным и работал довольно эффективно.
в настоящее время мы используем apc, свободный, и был просто простой Plug and Play на наших живых серверах. Если огромное увеличение производительности для нашего сайта, тем более, что увеличенный размер проекта. У меня также есть apc.stat, отключенный, таким образом, он не проверяет, был ли код обновлен, поэтому каждый раз, когда мы должны обновить код живого сайта, мы перезапускаем апача.
Тестирование BlaM включало все вызовы DB, выполненные WordPress. При совершении меньшего количества вызовов DB Вы будете видеть, что увеличение производительности кэшей кода операции еще более поразительно.
Я использовал Акселератор Зенда немного назад в день (с 2004 выходами). Это, конечно, дало некоторые значительные победы производительности на коде, с которым это могло работать, но к сожалению система, которую я использовал, была разработана к довольно часто динамично коду загрузки и затем оценке это, с которым Акселератор Зенда не мог сделать многого в то время (и я предположу, все еще не может).
На вниз стороне, мы, конечно, видели некоторые кэширующиеся проблемы (где код будет изменениями, но синхронизацией скомпилированной версии с изменением по той или иной причине). Я предполагаю, что те проблемы были, вероятно, сглажены к настоящему времени.
Так или иначе, я не имею никаких твердых чисел сравнения, и конечно не записал ту же систему в различных средах для сравнения, но для подавляющего большинства систем, PHP не собирается уничтожать Вас мудрая производительность.
Вы проверили Phalanger? Это компилирует PHP в код.NET. Вот некоторые сравнительные тесты , которые показывают, что это может существенно улучшить производительность.
Я использую 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 МБ, но это может быть скорректировано, и стоимость определенной памяти больше, чем платежи за себя с увеличенной скоростью и показателем отклика.