Rails 3.1 is very slow in development-mode because of assets, what to do?

邮差的信 提交于 2019-11-27 09:58:44

问题


After I added Sprockets, Rails is loading very slow in development mode, what should I do to speed it up?


回答1:


Take a look at https://github.com/wavii/rails-dev-tweaks.

Rails is running all of the to_prepare hooks on every Sprockets asset request in development mode. This includes things like auto-(re)loading your code, and various gems sneak work in there too.

rails-dev-tweaks disables to_prepare & reloading on any asset request (and a few others - read the first part of its README). Speeds up your dev environment by a huge amount for any decently sized project. It's also configurable to do this for any additional requests you like




回答2:


After referring to several Google results regarding this issue, I've nailed down where the DNS issue resides.

The problem is: Rails is doing reverse lookups. So, if you request from a direct IP, or a hostname in the /etc/hosts of only the machine with the browser, which i do often because i run everything in thrown together VM's, and that IP doesn't resolve to something quickly in the dev server, Rails will wait, for each, and every request.

Moral of the story? Include a /etc/hosts entry for every IP related to your development on the dev server (i.e. the server running rails). This means to go ahead and make a hosts entry for every fake/virtual/etc... IP on the dev server you expect to be involved in rails testing, because when it logs requests and whatnot, it will do a reverse lookup, and you want that to be speedy.




回答3:


Weird solution that worked for me. I normally navigated to my app on development via myapp.local:3000, which was set in my hosts file. Assets were loading ridiculously slow.

By navigating to my app via 127.0.0.1:3000, the assets loaded quickly, and further, after using the local ip one time, I could then navigation using myapp.local:3000 and the assets were loading super fast now.

Wish I could tell you why, but I hope it helps someone out there. I'm on OSX 10.7.5.




回答4:


Have you looked at how quickly it runs in production? The development environment behaves differently than testing and production, and takes more performance hits because of it. Without more information, we can't provide you with a better answer.




回答5:


Also check out Turbo Sprokets here - https://github.com/ndbroadbent/turbo-sprockets-rails3

It looks promising.



来源:https://stackoverflow.com/questions/7522781/rails-3-1-is-very-slow-in-development-mode-because-of-assets-what-to-do

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!