PHP 5.5 будет содержать Zend Optimizer+

В готовящуюся к релизу ветку 5.5 языка программирования PHP будет включен модуль оптимизации и кэширования байт-кода Zend Optimizer+.

Специальные техники кэширования опткода, а также ряд дополнительных средств оптимизации, используемые в инструменте Zend Optimizer+, позволяют ускорить выполнение скриптов, написанных на PHP. Кэширование предварительно компилированного кода производится в разделяемой памяти, за счет чего минуются этапы считывания с диска и обработки исходного кода при повторном запуске скриптов. Для генерации байт-кодов предусмотрены дополнительные оптимизационные инструменты, что обеспечивает еще большее ускорение, так как выполнение байт-кода происходит быстрее.

Система ранее поставлялась в пакете Zend Server, который являлся проприетарным. Но не так давно Zend Technologies решила присвоить проекту статус свободного, что существенно повлияло на решение разработчиков PHP. Дело в том, что изначально разработчики намеревались применить свободную систему APC (Alternative PHP Cache). Однако работа данной системы в итоге была расценена как нестабильная ввиду некоторых проблем с потреблением памяти и процессом кэширования. Впрочем, разработки в этом направлении ведутся, и планируется интегрировать APC в PHP 6.0. Возможность восстановления памяти, использованной при кэшировании скриптов, которые не запускались долгое время, а также поддержка API при управлении кэшированием данных, являются сильными сторонами системы APC.

В свою очередь, Zend Optimizer+, по заявлению разработчиков, полностью поддерживает ветки PHP от 5.2 до 5.5-dev и в целом лучше совместим с различными возможностями PHP. В модуле заложены средства выявления поврежденных данных, что встречается при неверно написанных функциях. Кроме того, проведенные тесты показали, что производительность у Zend Optimizer+ по разным показателям от 5 до 20% выше, чем у APC.

Таким образом, 66 из 77 голосующих участников проекта поддержало идею интеграции Zend Optimizer+ в PHP без привязки к версии (в общем виде), а 44 из 77 – за включение модуля в состав готовящейся ветки PHP 5.5.

Есть вероятность, что интеграция Zend Optimizer+ задержит релиз PHP 5.5 на полтора-два месяца ввиду необходимости проведения дополнительных тестов.