自从“升级”到Rails 3.1后,我的应用程序在开发模式下真的慢
(每次请求> 30)
我有很多图像,似乎大部分时间延迟是处理每个图像的每个GET请求的资产管道。
在暂存或生产模式下不要出现此问题,因为资产已缓存等。
有没有我没有被告知的事情,或者我们现在应该如何工作?
答案 0 :(得分:4)
如果您的应用程序的宝石或部分在每个请求开始时加载代码,或者仅仅引用应用程序的部分,导致大部分内容被加载,请求可能会很慢。对于大多数这些,自动加载器是请求延迟的主要原因。
rails自动重新加载器在每个请求开始时删除任何可自动加载的类/模块/等,并且可能会在每个请求开始时导致严重延迟,因为Rails会重新加载它需要的所有源文件
您可能想尝试使用https://github.com/wavii/rails-dev-tweaks,这可以让您精确控制哪些请求会导致自动重新加载器启动。这实际上不是根本原因的修复(某些事情正在做额外的工作)在每个请求开始时它可能不需要这样做 - 但它肯定会减轻大多数此类问题。
答案 1 :(得分:0)
与此同时:
cp -R app/assets/images public/assets
非常有帮助
请记得将public/assets/*
添加到.gitignore
答案 2 :(得分:0)
如果你的应用很慢,那是因为你的应用或你使用的其中一个宝石。我有类似的问题,看起来Mongoid就是这种情况,你可以在这里阅读:
http://martinciu.com/2011/06/rails-3-1-and-slow-asset-pipeline.html
答案 3 :(得分:-1)
您可以使用rake任务:
正如上面提到的,不要忘记将public / assets / *包含在.gitignore中