【发布时间】:2012-09-28 05:58:03
【问题描述】:
我正在使用GC.stat 来分析我们的 Rails 应用程序中的内存使用情况。 GC.stat 返回具有以下键的哈希:
:count
:heap_used
:heap_length
:heap_increment
:heap_live_num
:heap_free_num
:heap_final_num
有人知道这些值的确切含义吗?在 Ruby 源代码 (gc.c) 中没有它们的文档,只有一条评论:“哈希的内容是实现定义的,将来可能会更改。”
其中一些字段在上下文中是有意义的,例如count 是 Ruby 分配的堆数。但是heap_final_num 是什么? heap_increment 是什么? heap_length 是最小堆大小吗?
我在摆弄RUBY_MIN_HEAP_SLOTS、RUBY_FREE_MIN 和RUBY_GC_MALLOC_LIMIT,但更改这些环境变量似乎对:heap_count 或:heap_length 没有任何影响。如果我从根本上增加最小堆槽,我预计:heap_count 会下降。所以我真的很想知道所有GC.stat 值代表什么!
我使用的是 Ruby 1.9.3。
【问题讨论】:
标签: ruby memory-management garbage-collection memory-profiling