← 질문 목록
#172깊이 0
JVM GC의 효율을 높이는 튜닝 포인트는 무엇인가?
힙 크기와 GC 알고리즘이 Stop-the-world 시간을 좌우한다. 서비스가 허용할 수 있는 지연 시간과 처리량을 먼저 정하고 두 값을 조정한다.
- Young GenerationEden, Survivor. 짧은 생존 객체 관리
- Old Generation장기 생존 객체 관리. Major GC 발생
객체 생존 기간에 따라 영역을 나누어 관리한다. Young에서 살아남은 객체는 Old로 옮겨 간다.
Young과 Old가 한 덩어리로 붙은 배치는 옛 수집기 쪽이다. G1은 힙을 작은 조각으로 쪼개 놓고 조각마다 Young인지 Old인지를 붙인다. Old가 차면 무엇을 어떻게 걷을지도 쓰는 GC마다 다르다.
Stop-the-world는 모든 애플리케이션 스레드가 멈추는 현상이다. GC 알고리즘에 따라 멈춤 시간이 달라지므로, 서비스 특성에 맞춰 G1 GC나 ZGC를 선택한다.
힙 크기를 너무 크게 잡으면 Full GC의 처리 시간이 길어진다. 반대로 너무 작으면 GC가 빈번하게 발생하여 CPU 사용률이 올라간다.
추천 꼬리질문
관련 질문
- JVM의 핵심 역할은 무엇인가?프레임워크JVM의 핵심 역할 중 하나인 메모리 관리를 수행하는 GC의 구체적인 튜닝 방법을 다룬다.
- JVM 메모리 영역은 어떻게 구분하는가?언어 · 런타임JVM 메모리 영역의 구분과 이해는 GC 튜닝 포인트를 결정하는 기초 지식이 된다.
- GC 알고리즘 선택 기준은 무엇인가?언어 · 런타임GC 튜닝 효율은 사용하는 GC 알고리즘의 특성과 선택 기준에 직접적으로 영향을 받는다.
- 안드로이드에서 메모리 누수가 발생하는 주원인은 무엇인가?모바일안드로이드의 가비지 컬렉터(GC) 기반 메모리 관리 방식은 JVM GC의 동작 원리와 직접적으로 연결된다.
- 가비지 컬렉션이 멈춤을 만드는 이유는?언어 · 런타임