Хороший оптимизатор для PHP и скриптов командной строки с интенсивным использованием памяти?

Я оптимизировал сценарии при самых возможных узких местах. Трудно перенести код на другой язык, так что это не очень хорошее решение.

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

Они запускаются из командной строки, а не на Apache.

/usr/bin/php myBatchProcessor.php 

Работает ли eaccelerator или Zend optimizer для сценариев командной строки? или какие-либо другие предложения?

2 ответа

Решение

PHP "оптимизаторы" - змеиное масло!

"Оптимизаторы" были нужны только в эпоху PHP4 из-за неэффективности преобразования из исходного кода PHP в байт-код, на котором работал Zend Engine 1. Это больше не проблема в PHP5. Современные производные продуктов эпохи PHP4 также выполняют кэширование байт-кода, что очень полезно. Остерегайтесь любого продукта, который утверждает, что он может сделать простой ванильный PHP быстрее. Особенно за деньги.

Они запускаются из командной строки, а не на Apache.

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

Вы уверены, что уже профилировали свой код и устранили все возможные узкие места?

Если это так, возможно, пришло время попробовать HipHop, компилятор, который преобразует PHP в C++ перед созданием исполняемого файла. Он может не подходить для ваших нужд, так как он предназначен исключительно для обслуживания HTTP-запросов.

Вы можете установить APC и включить APC для кэширования в командной строке. Удостовериться! в этом случае отключить APC для вашего веб-сервера, в противном случае они будут конфликтовать.

Не ожидайте слишком многого от APC, так как генерация кода операции обычно не та часть, которая замедляет ваш скрипт, посмотрите на профилирование ваших скриптов.

редактировать:
Добавьте эти настройки в ваш конфигурационный файл:
apc.enabled = 1
apc.enable_cli = 1

Другие вопросы по тегам