jjzjj

ruby - 类的大小(以字节为单位)

有没有一种方法可以查看ruby​​中为类分配的内存大小?我构建了一个自定义类,我想知道它在内存中的大小。那么C语言中有没有类似sizeof()的函数呢?我只是想像这样初始化一个新类test=MyClass.new并试图找到一种方法来打印出已分配给内存的类的大小。这在ruby​​中甚至可能吗? 最佳答案 没有以与C相同的方式计算类大小的语言功能。对象的内存大小取决于实现。这取决于基类对象的实现。估计使用的内存也不简单。例如,如果字符串很短,则可以嵌入到RString结构中,但如果它们很长(NevercreateRubystringsl

ruby - 获取共享数组空间的memsize

tl;drrequire'objspace'ObjectSpace.memsize_of([0]*1_000_000)#=>8000040ObjectSpace.memsize_of(Array.new([0]*1_000_000))#=>40它去哪儿了?更长的版本Array中的一大堆东西似乎有一个“共享数组”的概念,其中数据block被移动到共享堆空间。我知道memsize_of清楚地表明它可能不完整,但是是否有(好的?)方法来分析这些共享数组block的分配?从ObjectSpace.each_object的角度来看,它们似乎不是“对象”。出于此内存分析器的目的,即使我无法将其追溯