Почему hello world на symfony грузится 72 секунды?

Решил выбрать фреймворк для проекта. Установил yii, потестировал, немного не понравился сам фреймворк, хотя работает быстро. Решил потестить symfony 2. Скачал сборку helloWorld с оф. сайта, установил, открыл и… через 72 секунды увидел результат. Я конечно понимаю, что нетбук с атомом очень медленный, но чтобы 72 секунды открывать страничку… В чем может быть проблема? Или symfony 2 реально настолько ущербна, что минуту генерирует мне ответ? И вообще, понимаю, что тема для холивара, но по соотношению мощность\производительность кто что может посоветовать. Я понимаю, что узким местом все равно обычно становятся запросы к базе, но посмотрев на симфони у меня как-то сразу отпало желание использовать этот фреймворк и возник некий панический страх перед остальными. До этого работал на zend'e, знал, что он медленный, но это было порядка 500 мс, но не больше…
  • Вопрос задан
  • 5415 просмотров
Пригласить эксперта
Ответы на вопрос 11
TrueDrago
@TrueDrago
Может быть при первом запросе генерировался кеш долго?
Тоже недавно его решил попробовать — у меня такое только если кеш сбросить — первый запрос долгий а потом всё ок.
Ответ написан
Meliborn
@Meliborn
Если вы думаете что это из-за фреймворка — мне вас очень жаль. max_execution_time 30 сек по умолчанию
Ответ написан
@edogs
В общем случае 72с похоже на ситуацию, когда скрипт лезет в интернет за проверкой обновлений (или еще чем), не дожидается ответа (файрволл блочит и/или сайт не отвечает), запрос сбрасывается по таймауту и скрипт отрабатывает дальше, выдавая результат.
Конкретно за симфонию не знаем, но с другими цмф/цмс такая ситуация бывает.
Ответ написан
@LayneBuchyn
Господа, вы зря заминусовали Meliborn. Может быть он и выразился надменно, но указал на Вашу ошибку. Поясню подробнее: в php.ini по умолчанию стоит максимальное время исполнения скрипта — 30 секунд. То есть если Симфони не отдал бы ответ в течении 30 секунд, то сценарий был бы прерван, и вы бы увидели ошибку, вместо «Hello World!». Это значит, что проблема не в фреймворке, а в браузере, ОС или еще чем-то тут уже может быть очень много вариантов, и не видя вашего компьютера сказать сложно.
Ответ написан
patashnik
@patashnik
Если Вы используете последнюю версию (которая 2.1.0-DEV) посмотрите в профайлере sf2 на что уходит время генерации страницы. Там сделан достаточно подбробный Timeline.
Ответ написан
TrueDrago
@TrueDrago
Может быть при первом запросе генерировался кеш долго?
Тоже недавно его решил попробовать — у меня такое только если кеш сбросить — первый запрос долгий а потом всё ок.
Ответ написан
@LayneBuchyn
Я понимаю. что вы сейчас снова заминусуете, но просто скажите мне пожалуйста, за что вы минусуете? За то, что люди дают ответы на вопросы?
Просто представьтесь пожалуйста в коменте, и поясните. за что минусуете — обещаю, в карму не наплюю.
Ответ написан
@LayneBuchyn
Еще, забыл:
Сделайте папки Symfony/app/cache и /Symfony/app/logs доступными для записи, если работаете под никсами.
Ответ написан
cystbear
@cystbear
Предлагаю для фундаментального «разбора полетов» выложить Ваше «hello world» приложение на github. Постараюсь помочь.
Ответ написан
Angerslave
@Angerslave
В symfony2 действительно много полезных плюшек, которые жрут ресурсы, особенно при сбросе кэша. Взять хотя бы аннотации. Парсится, в общем, довольно много, поэтому warmup — довольно долгая процедура. Причем, кэши, естественно, для каждого окружения раздельные. То есть если работа идёт одновременно с dev и prod — сбрасывать в консоли надо оба (я это делаю параллельно для всех env сразу).
Что касается системы — помимо тормознутости винды, есть немало тормозов, которые присасываются к PHP — XDebug, xhprof и т.д., у меня, например, XDebug замедляет тесты в 10 раз при сборе метрик покрытия кода.
Но вообще довольно шустрый фреймворк, не самый быстрый, но архитектурные идеи в нём заложены на будущее, я думаю.
Ответ написан
@phildev
$kernel = new AppKernel('dev', <b>false</b>);
Попробуйте запустить с отключенным дебагом, также для повышения производительности советую отключать Monolog
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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