Подтвердить что ты не робот

Rails 3.1 очень медленный в режиме разработки из-за активов, что делать?

После добавления Sprockets Rails загружается очень медленно в режиме разработки, что мне нужно сделать, чтобы ускорить его?

4b9b3361

Ответ 1

Взгляните на https://github.com/wavii/rails-dev-tweaks.

Rails запускает все крючки to_prepare при каждом запросе актива Sprockets в режиме разработки. Это включает в себя такие вещи, как автоматическая (повторная) загрузка вашего кода, и различные драгоценные камни тоже работают там.

rails-dev-tweaks отключает to_prepare и перезагружает любой запрос на активацию (а некоторые другие - читают первую часть README). Ускоряет свою среду разработки на огромную сумму для любого приличного размера. Он также настраивается для этого для любых дополнительных запросов, которые вам нравятся

Ответ 2

После обращения к нескольким результатам Google по этой проблеме я прибил место, где находится проблема DNS.

Проблема заключается в следующем: Rails выполняет обратный поиск. Таким образом, если вы запрашиваете прямой IP-адрес или имя хоста в /etc/hosts только машины с браузером, что я часто делаю, потому что я запускаю все, что было в брошенных вместе виртуальных машинах, и этот IP-адрес не разрешает что-то быстро в dev-сервере Rails будет ждать, для каждого и каждого запроса.

Мораль истории? Включите запись /etc/hosts для каждого IP-адреса, связанного с вашей разработкой на dev-сервере (т.е. Сервер, на котором работают рельсы). Это означает, что вы должны сделать запись хоста для каждого поддельного/виртуального/и т.д. IP-адреса на сервере-разработчике, который, как вы ожидаете, будет задействован в тестировании рельсов, потому что когда он регистрирует запросы и что-то еще, он будет делать обратный поиск и вы хотите, чтобы это было быстро.

Ответ 3

Странное решение, которое сработало для меня. Обычно я переходил к моему приложению при разработке через myapp.local: 3000, который был установлен в файле моих хостов. Активы загружались смехотворно медленно.

Переходя к моему приложению через 127.0.0.1:3000, активы загружались быстро, а затем, после использования локального ip один раз, я мог бы затем перейти с помощью myapp.local: 3000, и активы загрузились очень быстро.

Хотел бы я рассказать вам, почему, но я надеюсь, что это поможет кому-то там. Я на OSX 10.7.5.

Ответ 4

Вы посмотрели, как быстро он работает на производстве? Среда разработки ведет себя иначе, чем тестирование и производство, и из-за этого получает больше производительности. Без дополнительной информации мы не сможем дать вам лучший ответ.