升级到Rails 3.1后,有没有人注意到加载时间的指数差异。在我的本地开发机器上加载一个非常基本的请求需要大约4秒钟。有没有人有任何想法如何解决这个问题 - 怀疑它与Rails新资产管道有关?
答案 0 :(得分:3)
看看https://github.com/wavii/rails-dev-tweaks。
Rails在开发模式下运行每个Sprockets资产请求的所有to_prepare挂钩。这包括自动(重新)加载代码以及各种宝石偷偷摸摸的工作。
rails-dev-tweaks禁用to_prepare&重新加载任何资产请求(以及其他一些资产请求 - 阅读其自述文件的第一部分)。对于任何体面的项目来说,都要大量加快您的开发环境。它还可以配置为您喜欢的任何其他请求执行此操作
答案 1 :(得分:1)
如果您正在使用Passenger,那么减速的一个原因是所有资产现在都由资产管道提供,而不是网络服务器(Apache / nginx)。前者比后者慢得多。
此外,在开发中,Rails通常一次处理一个请求,因此如果页面上有许多图像,则速度会非常明显。
答案 2 :(得分:0)
我的想法是(并且我想尽快将其打包成一个gem)将开发环境分解为前端和后端开发环境:
前端: - 缓存类 - 编译&即时提供资产 - 用于javascript + css
后端: - 预编译资产(例如,在服务器启动时) - 在每个请求上重新加载类等
你可以基本上通过使用适当的配置语句向config/environments
添加第四个文件来执行此操作,但是当您在前端和后端工作之间切换时必须重新启动服务器
答案 3 :(得分:0)
我的应用程序在Rails 3.0上,所以我无法谈论加载速度的变化,但是,我强烈建议使用rails-dev-boost gem。它显着加快了开发中的应用程序加载时间,使其非常接近生产速度。
请务必阅读安装说明,因为它与将gem 'rails-dev-boost
简单地添加到您的Gemfile有点不同。