pup*_*eno 13 ruby memory memory-leaks ruby-on-rails
我有一个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.不幸的是,升级不是一种选择.
Charles Oliver"Headius"Nutter最近撰写了一系列关于使用JVM工具调试Ruby内存泄漏的博客文章:
IIRC,JRuby社区的其他成员同时也在同一主题上发布了几篇其他博客文章.
他们的基本论点(虽然他们过于礼貌而不是这样说)是使用JRuby以外的任何东西来调试内存泄漏只是简单的愚蠢,仅仅因为JRuby可以使用比所有 Ruby 更多的工程工作量的Java工具分析工具在一起.Ruby社区免费获取这些工具,因为所有企业Java无人机都在为它们付费.
您可能希望查看演示文稿"垃圾收集和Ruby堆":
http://www.scribd.com/doc/32718051/Garbage-Collection-and-the-Ruby-Heap
从幻灯片26开始,解释了各种有用的工具(ltrace,bleak_house,memprof等).
| 归档时间: |
|
| 查看次数: |
6811 次 |
| 最近记录: |