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。