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