...

воскресенье, 16 февраля 2014 г.

Как я Symfony2 c Vagrant подружил


сегодня в 21:25


Недовно я познакомился с инструментом для создания виртуального окружения Vagrant, который я использую для веб разработки и очень рад этому. Но не все так радостно c реализизацией в этом окружении Symfony2 проекта. А именно, проблема в медленности загрузки (генерации) страницы! Итак возникла задача увеличить быстродействие, так как время загрузки страницы более 10-ти секунд ну вовсе не ахти.

У кого возникла такая же проблема, или кому просто интересно прошу под кат.



Походив по просторам интернета я нашел замечательную статью о том как влияет обновления кеша и логов в 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.





Свежий взгляд

на бег


протестируй кроссовки

нового поколения




Стань

первоиспытателем!


Скачай Windows Server 2012 R2

и выиграй почетную футболку!


Скачать




Автоматизированное

продвижение сайтов




  • 50% экономии на ссылках

  • Запуск проекта за 10 минут

  • Вывод и удержание в ТОП 10



Подробнее



Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


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

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