Java25 Compact Object Header로 HotSpot JVM에서 메모리 절약

지난 9월에 Java25 버전이 정식 릴리즈 됐다. 여러가지 개선과 변화가 있었지만 그 중 눈에 띄는 항목 중 하나가 있었다. 바로 Compact Object Header 기능으로 객체의 헤더 사이즈를 기존 12~16byte에서 8byte로 줄였다는 내용이다. 8byte 라는 수치가 상당히 작게 느껴질 수 있겠지만 수천, 수만개의 객체들이 생성되는 애플리케이션에서 객체당 4~8byte 절약은 메모리 절감 효과를 기대할 수 있다. 이번 포스팅에서는 JOL(Java Object Layer)를 사용하여 정말 객체의 헤더 사이즈가 줄어드는지 확인해 보자.