我在rails上使用ruby编写了一个小型Web应用程序,其主要目的是上传,存储和显示xml(文件最多可达几MB)文件的结果.运行了大约2个月后,我注意到mongrel进程使用了大约4GB的内存.我做了一些关于调试ruby内存泄漏的研究,并且找不到多少.所以我有两个问题.
我有一个Ruby on Rails项目,似乎是一个内存泄漏.它一直使用越来越多的内存,直到它崩溃.使用ObjectSpace转储每个类的对象数量我发现了这个:
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
Run Code Online (Sandbox Code Playgroud)
我相信FileNode是个问题.这是一个模型.任何想法如何找到保存17k FileNodes的引用?
这是使用Ruby 1.8.6和Rails 2.2.0.不幸的是,升级不是一种选择.