Java 8부터 도입된 메모리 영역
이전 버전(Java 7까지)에서는 클래스 메타데이터를 PermGen(Permanent Generation) 영역에 저장했는데, Java 8부터는 PermGen이 제거되고 Metaspace라는 새로운 영역이 도입
특징
- 클래스 메타데이터 저장소
- JVM이 로딩한 클래스의 메타데이터(클래스 구조, 메소드, 필드 정보 등)를 저장하는 영역이에요.
- PermGen과의 차이점
- PermGen은 JVM 힙 메모리 내부에 있었지만,
- Metaspace는 **네이티브 메모리(native memory, OS 메모리)**를 사용해요.
→ 즉, JVM 힙 크기와는 별개로 운영체제 메모리를 사용하기 때문에 PermGen보다 더 유연해졌어요.
- 자동 확장 가능
- 기본적으로 제한이 없어서, 필요할 때마다 OS 메모리에서 가져와 확장돼요.
- 단, 무한정 늘어나면 OutOfMemoryError(java.lang.OutOfMemoryError: Metaspace)가 발생할 수 있어요.
- 튜닝 가능
- -XX:MetaspaceSize : 초기 Metaspace 크기
- -XX:MaxMetaspaceSize : 최대 Metaspace 크기 제한
'Java' 카테고리의 다른 글
자바 8 / 17 / 21 버전별 차이점 (0) | 2025.06.04 |
---|---|
Junit (0) | 2024.12.05 |
Log4j 란 ?? (0) | 2024.12.03 |
JDBC-Controller (0) | 2024.10.25 |
JDBC-DAO (0) | 2024.10.25 |