7. 정리
- 힙은 Young(Eden·Survivor) 과 Old 로 나뉘고, 대부분의 객체는 Eden 에서 태어나 첫 GC 에 사라집니다.
- GC 는 GC 루트에서 도달할 수 없는 객체만 치웁니다. 누수는 "안 쓰지만 도달되는" 참조입니다.
-Xmx는 힙만 제한합니다. 컨테이너에서는MaxRAMPercentage로 여유를 둡니다.- Serial·Parallel 은 처리량, G1 은 균형, ZGC 는 정지 시간입니다. 웹 서버는 G1 기본값으로 시작합니다.
- GC 로그의
A->B(C)에서 A 와 B 가 같으면 전부 살아 있는 것이고, 반복되면 OOM 이 옵니다. -Xlog:gc,-XX:+HeapDumpOnOutOfMemoryError,-XX:+ExitOnOutOfMemoryError는 운영 JVM 의 기본 장비입니다.- 박싱과 문자열은 원시 배열의 5~14배 크기입니다. 대량 데이터는 record 와 원시 배열로 듭니다.