PerGen/Metaspace

sh·2025년 4월 2일

before

https://johngrib.github.io/wiki/java8-why-permgen-removed/

이전 doc
현재 Hotspot의 클래스 메타 데이터, interned String, class static 변수들은 Java heap의 permanent generation에 저장됩니다.

구현 제안서
클래스 메타 데이터는 네이티브 메모리에 할당하고, interned String와 클래스 statics는 Java heap으로 이동합니다

PerGen (Permanent Generation, 영구 세대)
원래 PerGen에 할당된 Method area에 클래스 메타데이터가 저장되었음
heap GC가 아닌 별도의 GC가 관리했었음
JDK 7까지 사용되다가 8에서 삭제 됨

Metaspace
OS가 관리하는 native memory 사용
method area가 속함
1. 동적 메모리 할당으로 상한이 넓어져 OOM이 줄어듦, 유연한 확장 가능
2. GC 대상이 아니게 됨

profile
CS 기록

0개의 댓글