我有一个Ruby on Rails项目,它似乎是内存泄漏。它一直使用越来越多的内存,直到它崩溃。使用ObjectSpace倾倒每个类的对象我发现这个:在Ruby on Rails项目中查找内存泄漏
Name Count
-----------------------------------------------------------------------
String 649476
Hash 59695
Array 39407
ActiveSupport::Multibyte::Codepoint 19337
FileNode 17134
Time 3391
Regexp 1944
ActionController::Routing::DividerSegment 1743
Proc 1597
Gem::Version 1545
Class 1503
Gem::Requirement 1479
ActiveRecord::DynamicFinderMatch 1021
我相信FileNode是问题。这是一个模型。任何想法如何找到17k FileNodes的引用保存在哪里?
这是使用Ruby 1.8.6和Rails 2.2.0。不幸的是升级不是一种选择。
我有同样的问题,只是我担心它涉及到字符串对象的数量巨大。每次我重新加载页面时,我都会得到大约10,000个永不会收集垃圾的新字符串。你在这里也有一个很大的数字。你能解决这个问题吗? – 2012-11-17 09:01:42