JVM의 메모리 구조
Heap영역
- new 연산자로 생성된 객체와 배열을 저장하는 영역
- 동적으로 할당해서 사용할 수 있는 메모리영역
- Stack영역이 Heap, LIFO로 처리됨 (Last Input - First Out )
- GC의 대상
- JVM Xms, Xmx 옵션과 연관
Non-Heap영역
- Class메타정보
- Method메타정보
- Static Object, 상수화된 String Object, Class의 함수가 실행되는 영역
- PermSize와 연관 -> PermGen에러시 Non-Heap메모리 문제
결론적으로, Hot Deploy를 통해 소스재배포가 빈번한 시스템일 경우 Non-Heap 메모리를 충분히 확보할 필요가 있다.
최근댓글