Rails升级到3.1后加载时间缓慢

时间:2011-10-26 11:02:57

标签: ruby-on-rails performance ruby-on-rails-3.1

升级到Rails 3.1后,有没有人注意到加载时间的指数差异。在我的本地开发机器上加载一个非常基本的请求需要大约4秒钟。有没有人有任何想法如何解决这个问题 - 怀疑它与Rails新资产管道有关?

4 个答案:

答案 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有点不同。