У кого возникла такая же проблема, или кому просто интересно прошу под кат.
Походив по просторам интернета я нашел замечательную статью о том как влияет обновления кеша и логов в Symfony2 проекте на быстродействие. Автор с помощью XHProf нашол «узкие места» и описав все детали пришел к выводу, что обновление кеша и логов в общедоступной (shared) директории приводит к проблеме медленной генерации страницы и решением этой проблемы будет переопределение этих директорий путем переноса их с shared в какую либо другую в виртуальной ОС. А именно вот так:
<?php class AppKernel extends Kernel { // ... public function getCacheDir() { if (in_array($this->environment, array('dev', 'test'))) { return '/dev/shm/appname/cache/' . $this->environment; } return parent::getCacheDir(); } public function getLogDir() { if (in_array($this->environment, array('dev', 'test'))) { return '/dev/shm/appname/logs'; } return parent::getLogDir(); } }
Проделав это я скоротил время загрузки страницы но оно все еще осталось велико. Ответ сервера уже был короче, но загрузка файлов активов (asset files) занимала около 7-9 сек., поэтому я воспользовался еще одним советом из выше вышеупомянутой статьи и запустил команду автоматической генерации и регенерации asset-ов:
$ php app/console assetic:dump --watch
перед этим отключив их автоматическое обновления при каждом запросе:
# app/config/config_dev.yml assetic: use_controller: false
Детальнее об этом можно посмотреть вот здесь Dumping Asset Files in the dev environment
В результате, после проведения всего двух несложных действий я сумел ускорить время загрузки страниц с более 10-ти до менее 1-й секунд в зависимости от конретной страницы, что соответственно позволило мне повысить время на разработку и дебагинг в виртуальном окружение Vagrant.
ссылка на оригинал статьи http://habrahabr.ru/post/212663/
Добавить комментарий