[MyBox] Java11 과 Java 8 중에 어떤 버전을 선택할까?

da__ell·2023년 3월 27일
0

My-Box

목록 보기
1/2

Java 8 vs Java 11

현재 기업을 보면 Java 8 혹은 Java 11을 주로 채택하여 사용하고 있는 것 같다. 개인적으로는 Java 8의 기능을 수용하면서 더 나은 라이브러리가 추가 되었고, 성능이 개선된 G1 GC를 사용하는 Java 11을 사용하는 편이다. 또한 Java 11은 LTS 버전이므로 장기적인 지원이 보장된 버전이므로 앞으로도 유익한 기능이 나올 것으로 기대한다.

G1 GC

Java 9+ 의 default GC

현재 GC 중 stop-the-world의 시간이 제일 짧음

CMS GC 를 개선하여 만든 GC로 위에서 살펴본 GC와는 다른 구조를 가진다.
Heap을 Region이라는 일정한 부분으로 나눠서 메모리를 관리한다.

전체 Heap에 대해서 탐색하지 않고 부분적으로 Region 단위로 탐색하여, 각각의 Region에만 GC가 발생한다

더이상 참조되지 않는 객체를 확인하기 위해서 JVM이 GC를 실행하기 위해 애플리케이션 실행을 멈춘다. 이를 stop the world라고 한다. GC를 실행하는 쓰레드를 제외한 나머지 쓰레드들은 모두 작업을 멈추게 되고, GC가 완료된 이후 작업을 다시 실행한다. 그 과정에서 성능이 저하되는 문제가 발생한다.
→ Stop the World

따라서 stop-the-world가 최대한 덜 발생하도록 하여, Java Application이 멈추는 현상을 줄이는 것이 GC의 성능을 결정한다.

https://steady-coding.tistory.com/598

profile
daelkdev@gmail.com

0개의 댓글