Post

TIL

TIL

필기

JVM의 Eden 영역(Eden Space)은 Heap 메모리의 Young Generation(Young Gen)에 속하는 공간 중 하나로, 객체가 처음 생성되는 영역이다.

📌 Eden 영역이란? • JVM의 Garbage Collection(GC) 관리 구조에서 Heap 메모리는 크게 Young Generation과 Old Generation(또는 Tenured)으로 나뉜다. • Young Generation은 다시 Eden, Survivor 0, Survivor 1로 세분화되는데, • Eden 영역: 새롭게 생성된 대부분의 객체가 할당됨. • Survivor 영역(S0, S1): Eden에서 살아남은 객체가 이동함. • Eden 영역에서 객체가 일정 조건을 충족하면 Survivor 영역으로 이동하고, Survivor 영역에서도 일정 횟수 이상 살아남은 객체는 Old Generation으로 이동한다.

🔥 Eden 영역의 주요 특징 1. 대부분의 객체가 여기서 생성됨 • 일반적으로 짧은 생명 주기를 가진 객체는 Young Generation에서 할당되고 해제됨. 2. Minor GC가 수행됨 • Eden 영역이 가득 차면 Minor GC(Young GC)가 발생하여 살아남은 객체를 Survivor 영역으로 이동시킴. • Eden에 있는 불필요한 객체는 정리되어 메모리 재사용 가능. 3. 빠른 할당 및 해제 • Eden 영역은 할당 속도가 빠르고, GC가 자주 수행되기 때문에 메모리 관리 효율이 높음. 4. Old Generation으로의 이동 • Survivor 영역에서 여러 번 살아남으면 Old Generation으로 이동하여, Full GC의 대상이 됨.

🎯 Eden 영역에서 객체의 생명 주기 1. 객체가 생성되면 Eden 영역에 저장됨. 2. Eden 영역이 가득 차면 Minor GC 수행 → 살아남은 객체는 Survivor 영역(S0)으로 이동 3. Eden 영역이 다시 가득 차면 Minor GC 수행 → • Eden에서 살아남은 객체는 빈 Survivor 영역(S1)으로 이동 • 이전 Survivor(S0)에 있던 객체 중 살아남은 객체도 S1으로 이동 • S0이 비워지고 역할이 바뀜(S0 ↔ S1) 4. 일정 횟수(Minor GC를 여러 번 통과) 이상 살아남은 객체는 Old Generation으로 승격(Promotion)

🛠 Eden 영역 최적화 및 설정 방법 • JVM 옵션으로 Heap 크기 조절 가능

-Xms # 초기 Heap 크기 설정 -Xmx # 최대 Heap 크기 설정 -XX:NewRatio= # Young Generation과 Old Generation 비율 조정 -XX:SurvivorRatio= # Eden과 Survivor 비율 조정

1
2
3
•	GC 튜닝을 통한 최적화
•	G1GC, ZGC, Parallel GC, CMS GC 등 적절한 GC 알고리즘 선택
•	Eden 영역 크기를 조절하여 Minor GC 빈도를 적절히 조정

✅ 정리 • Eden 영역은 새로운 객체가 생성되는 Heap 메모리 공간 • Minor GC 발생 시 불필요한 객체를 정리하고 Survivor 영역으로 이동 • 객체가 오래 살아남으면 Old Generation으로 이동 • JVM 옵션을 통해 Eden 영역 크기를 조절하여 성능 최적화 가능

This post is licensed under CC BY 4.0 by the author.