instance_sizeof
instance_sizeof
instance_sizeof 표현식은 주어진 클래스의 인스턴스 크기를 담은 Int32를 반환합니다.
객체의 참조(포인터) 크기를 반환하는 sizeof와 달리, instance_sizeof는 할당된 객체 자체의 크기를 반환해요.
예시로 볼게요:
class Point
def initialize(@x : Int32, @y : Int32)
end
end
Point.new 1, 2
# 2 x Int32 = 2 x 4 = 8
instance_sizeof(Point) # => 12
인스턴스에 Int32 필드가 두 개뿐인데도, 컴파일러는 객체의 타입 id를 위해 Int32 필드를 항상 하나 더 넣습니다. 그래서 인스턴스 크기가 8이 아니라 12가 되는 거예요.
출처: Crystal 공식 문서
더 알아보기 (Learn more)
- sizeof — 참조(포인터) 크기
- instance_alignof — 인스턴스 정렬 크기