instance_sizeof¶
instance_sizeof
式は、指定されたクラスのインスタンスサイズを持つInt32
を返します。
割り当てられたオブジェクトへの参照(ポインタ)のサイズを返す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
インスタンスには2つのInt32
フィールドがありますが、コンパイラは常にオブジェクトの型ID用の追加のInt32
フィールドを含めます。そのため、インスタンスサイズは最終的に8ではなく12になります。