После добавления Sprockets Rails загружается очень медленно в режиме разработки, что мне нужно сделать, чтобы ускорить его?
Rails 3.1 очень медленный в режиме разработки из-за активов, что делать?
Ответ 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
Вы посмотрели, как быстро он работает на производстве? Среда разработки ведет себя иначе, чем тестирование и производство, и из-за этого получает больше производительности. Без дополнительной информации мы не сможем дать вам лучший ответ.
Ответ 5
Также посмотрите здесь Turbo Sprokets - https://github.com/ndbroadbent/turbo-sprockets-rails3
Это выглядит многообещающе.