Поиск по этому блогу

суббота, 15 октября 2011 г.

Подготовка Zend к продакшену для highload проектов

Привет, %username%.
Сегодня подниму вопрос о использовании Zend компонентов на production в highload проектах.
Проблема в том, что Zend достаточно тяжелый продукт, он содержит море классов. При оценке производительности приложения выясняется, что львиную долю времени занимают "инклуды" классов Zend .



Есть соответствующий вопрос на stackoverflow.
Решение - удалить все инклуды и использовать механизма аутолодинга. Это поможет сделать следующий скрипт. Он взят с официального сайта .
#!/bin/sh
# see http://framework.zend.com/manual/en/performance.classloading.html#performance.classloading.striprequires.sed
# see http://test.ical.ly/2011/02/24/using-zend-framework-components-in-a-symfony2-project/
#
# symfony 2.0 vendors 
cd ./vendor/zf/library
find . -name '*.php' -not -wholename '*/Loader/Autoloader.php' \
-not -wholename '*/Application.php' -print0 | \
xargs -0 sed --regexp-extended --in-place 's/(require_once)/\/\/ \1/g'

После того, как сделал, стало чуть по легче.
Если всё-равно проблема остается, то весь Zend сливают в один файл. Кстати, некоторые аутолоадеры так и поступаю, при первом пробеге кешируют результат.
На этом всё. Спасибо за внимание.

Комментариев нет:

Отправить комментарий