如何转储正在运行的ruby程序的堆内容?
如何在内存中获取此程序分配的大小
array = [1,"hello" , 5.2 , 234567]
puts "hello world"
答案 0 :(得分:2)
对于统计信息,您可以使用GC.stat
:
GC.stat
=> {:count=>25,
:heap_used=>464,
:heap_length=>802,
:heap_increment=>338,
:heap_live_num=>120503,
:heap_free_num=>78575,
:heap_final_num=>0,
:total_allocated_object=>721771,
:total_freed_object=>601268}
您可以使用同名的gem显示堆转储:https://github.com/Vasfed/heap_dump
这篇最近的帖子也将对问题有所了解:http://samsaffron.com/archive/2013/11/22/demystifying-the-ruby-gc