instance_sizeof¶
instance_sizeof 表达式返回一个 Int32,表示给定类的实例大小。
与 sizeof 不同,sizeof 返回分配对象的引用(指针)的大小,而 instance_sizeof 返回分配对象本身的大小。
例如
class Point
def initialize(@x, @y)
end
end
Point.new 1, 2
# 2 x Int32 = 2 x 4 = 8
instance_sizeof(Point) # => 12
即使实例有两个 Int32 字段,编译器也会始终为对象类型 ID 包含一个额外的 Int32 字段。这就是为什么实例大小最终为 12 而不是 8。