为了在长时间运行的 JRuby 应用程序过程中监视内存使用情况,我想在某些关键点记录当前正在使用的堆内存。我该怎么做?
我找到的最接近的是GC.stat[:used]
,但是存储在这个插槽中的数字真的意味着什么吗?我不认为它以字节表示堆内存,因为在我的示例中,这高得离谱(11000000000.0(,而且它是一个小数,没有多大意义。
我找到了以下解决方案:
require 'java'
import java.lang.management.ManagementFactory
mbean = ManagementFactory.getMemoryMXBean
current_heap_in_bytes = mbean.getHeapMemoryUsage.used
这记录在这里和这里。
当然,如果有人知道更简单的方法,我很乐意接受这样的替代方案作为答案。