Java

JVM - java버전별 변경점

기기디 2022. 5. 24. 00:29

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