JAVA7
- 메모리구조 변경사항 : Permanent영역이 별도로 존재했다.
JAVA8
- 메모리구조 변경사항 : Permanent영역이 제거되고 Native영역으로 이동하여 MetaSpace영역으로 변경되었다. Permanent영역에 저장되던 static object들은 Heap영역으로 옮겨져 GC의 대상이 됐다.
- 기존 permanent영역은 JVM에 속한 영역으로 크키가 고정되어있었는데 meta space로 옮겨가며 OS에 속한 영역이 되어 자동으로 크기를 조절한다. 그에 따라서 더 큰 메모리 영역을 가지게 되어 OOM이슈가 줄어들었다,
- 패러럴 컬렉터가 기본사항이다.
Generation Memory구조
- Young : eden, survivor로 이루어져 있다
- Tenured : virtual로 이루어져 있다
JAVA11
- G1GC가 기본값이다.(java9 이후로)
- Z Garbage Collector의 추가 : 대기시간이 낮은 확장 가능한 GC다. 모든 종류의 작업을 동시에 작업하며 어플리케이션 스레드의 실행을 중지하지 않아서 기존 GC에 있는 일시정지 시간이 존재하지 않는다.
Generation Memory구조
- Young : eden, survivor에 이어서 virtual이 추가됐다.
- Old : 기본선택 컬렉터가 바뀜에 따라서 기존 Tenured영역의 이름이 old영역으로 교체됐다. 기본선택 컬렉터가 바뀜에 따라서
JAVA12
- Shenandoah GC의 추가 : ZGC와 비슷하지만 더 많은 옵션을 제공한다. 레드햇에서 개발했다.
'Java' 카테고리의 다른 글
Servlet서블릿 (0) | 2022.05.25 |
---|---|
동등성과 동일성의 차이 (0) | 2022.05.25 |
JVM (0) | 2022.05.24 |
LocalDateTime to LocalDate 변환 (0) | 2021.09.14 |
unboxing of '*' may produce 'nullpointerexception' (0) | 2021.06.30 |