问题描述
在将 rails 2 应用程序迁移到 rails 3 时,我遇到了所用内存的大幅增加.经过一番研究,我发现助手是问题所在.取消注释视图中的任何助手会加快一切.
While migrating a rails 2 app to rails 3 I encountered a huge increase in memory used.After some research I found out the helpers were the problem. Uncommenting any helpers in the view would speed everything up.
我试图找出真正问题的事情:
Things I tried to find the real issue:
- include_all_helpers = false
- 禁用部分帮助文件
- 通过将 Model.all 用法重构为一些更快的代码来清理代码
我现在有一个理论,一些助手可能会被重命名或删除,rails 开始搜索它们并开始搜索模型/控制器作为救援.
I got a theory now that some helpers might be renamed or deleted, rails starts to search for them and starts searching models / controllers as rescue.
页面请求最多需要 5 秒,并使用 2 GB 内存.
A page request takes up to 5 seconds and using 2 GB of memory.
有人知道导致此问题的原因以及如何修复或调试吗?
Anyone got a clue what causes this issue and how to fix or debug it?
推荐答案
通过将其放置在 config/initializers/anti_freeze_hack.rb 中修复:
Fixed by placing this in config/initializers/anti_freeze_hack.rb :
module ActionDispatch
module Routing
class RouteSet
alias inspect to_s
end
end
end
感谢 Amala 为我提供了正确的主题:D
Credits to Amala for linking me the right topic :D
这篇关于助手在 rails 3(.2) 中使用大量内存的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!