Java
-
앞에서 각각의 GC에 대해서 공부해보고 정리해보았다.어떤게 확연히 좋다거나 그런건 없고, 특정 상황에는 특정 GC가 더 적합하다는 있을 수 있을것 같다. G1GC : https://kkang-joo.tistory.com/216ZGC : https://kkang-joo.tistory.com/215 GC의 특징들을 나란히 비교해보자.그 과정에서 GC별 장단점을 더 잘 이해할 수 있을것 같다. ZGC vs G1GC 비교항목ZGCG1GC도입 시기JDK 11 (Experimental) / JDK 15~17 (Production Ready)JDK 7 (Experimental) / JDK 9부터 Default목표극단적으로 낮은 STW 지연 시간 (1~2ms 이하)낮은 지연 + 예측 가능한 GC 시간GC 방식Conc..
[Java] G1GC & ZGC앞에서 각각의 GC에 대해서 공부해보고 정리해보았다.어떤게 확연히 좋다거나 그런건 없고, 특정 상황에는 특정 GC가 더 적합하다는 있을 수 있을것 같다. G1GC : https://kkang-joo.tistory.com/216ZGC : https://kkang-joo.tistory.com/215 GC의 특징들을 나란히 비교해보자.그 과정에서 GC별 장단점을 더 잘 이해할 수 있을것 같다. ZGC vs G1GC 비교항목ZGCG1GC도입 시기JDK 11 (Experimental) / JDK 15~17 (Production Ready)JDK 7 (Experimental) / JDK 9부터 Default목표극단적으로 낮은 STW 지연 시간 (1~2ms 이하)낮은 지연 + 예측 가능한 GC 시간GC 방식Conc..
2025.08.12 -
G1GC는 garbage first GC라고 불리는데 -> Garbage만 있는 Region을 먼저 회수한다고 해서 붙여진 이름목표 -> Stop-The-World 시간이 짧고 예측 가능하게 하는 것Java9부터 디폴트 GC RegionG1 GC는 기존 힙 구조와 다르다전형적인 힙 구조는 Young, Old 영역을 명확하게 구분하였지만, G1 GC는 개념적으로 그들이 존재하나 일정 크기의 논리적 단위인 region으로 구분한다-XX:G1HeapResionSize : JVM 힙은 2048개의 region으로 나뉠 수 있으며, 해당 옵션을 통해 1MB ~ 32MB 사이로 지정될 수 있다이전에 존재하던 eden, survivor, old 영역 이외에도 새롭게 정의된 Humongous, Available/Un..
[Java] G1GC 알아보기G1GC는 garbage first GC라고 불리는데 -> Garbage만 있는 Region을 먼저 회수한다고 해서 붙여진 이름목표 -> Stop-The-World 시간이 짧고 예측 가능하게 하는 것Java9부터 디폴트 GC RegionG1 GC는 기존 힙 구조와 다르다전형적인 힙 구조는 Young, Old 영역을 명확하게 구분하였지만, G1 GC는 개념적으로 그들이 존재하나 일정 크기의 논리적 단위인 region으로 구분한다-XX:G1HeapResionSize : JVM 힙은 2048개의 region으로 나뉠 수 있으며, 해당 옵션을 통해 1MB ~ 32MB 사이로 지정될 수 있다이전에 존재하던 eden, survivor, old 영역 이외에도 새롭게 정의된 Humongous, Available/Un..
2025.08.08 -
업무 중 신규 서비스를 오픈하기 전에 성능 테스트를 진행하게 되었고, 그 과정 중에서 어떤 GC를 사용할지 성능테스트를 해 볼 기회가 생겼다. 성능 테스트를 하며 비교하기 전에 각 GC의 특성을 파악하면 진행과정을 이해하는데 많은 도움이 될 거 같아서 ZGC의 기본적인 개념, 동작 방식을 정리해 보자. JDK 11에 Experimental로 추가JDK 15에서 Production Ready 상태로 전환JDK 17에도 반영 ZGC의 주요 목표 중 하나는 Stop-The-World(STW) 시간을 1ms 이하로 줄이는 것ZGC는 대용량 힙 메모리에서도 낮은 지연 시간(low latency)을 목표로 설계 ZPage메모리를 ZPage라는 논리적인 단위로 구분ZPage - 3가지 타입으로 구분 small me..
[Java] ZGC 알아보기업무 중 신규 서비스를 오픈하기 전에 성능 테스트를 진행하게 되었고, 그 과정 중에서 어떤 GC를 사용할지 성능테스트를 해 볼 기회가 생겼다. 성능 테스트를 하며 비교하기 전에 각 GC의 특성을 파악하면 진행과정을 이해하는데 많은 도움이 될 거 같아서 ZGC의 기본적인 개념, 동작 방식을 정리해 보자. JDK 11에 Experimental로 추가JDK 15에서 Production Ready 상태로 전환JDK 17에도 반영 ZGC의 주요 목표 중 하나는 Stop-The-World(STW) 시간을 1ms 이하로 줄이는 것ZGC는 대용량 힙 메모리에서도 낮은 지연 시간(low latency)을 목표로 설계 ZPage메모리를 ZPage라는 논리적인 단위로 구분ZPage - 3가지 타입으로 구분 small me..
2025.08.04 -
spring-boot actuator의 메트릭 정보와 grafana dashboard(+prometheus)를 이용해서 다양한 정보를 모니터링할 수 있다. 해당 정보 중에서 오늘은 GC 관련된 dashboard를 확인해 보자. grafana의 dashboard를 직접 작성하지 않고 이미 작성된 유용한 내용들을 import해와서 사용할 수 있는데오늘은 아래 dashboard에서 제공하는 내용을 살펴보자.https://grafana.com/grafana/dashboards/11378-justai-system-monitor/ 각각 그래프를 나타내기 위한 지표는 아래와 같다GC count : jvm_gc_pause_seconds_count..
[Java] GC 관련 metric 모니터링spring-boot actuator의 메트릭 정보와 grafana dashboard(+prometheus)를 이용해서 다양한 정보를 모니터링할 수 있다. 해당 정보 중에서 오늘은 GC 관련된 dashboard를 확인해 보자. grafana의 dashboard를 직접 작성하지 않고 이미 작성된 유용한 내용들을 import해와서 사용할 수 있는데오늘은 아래 dashboard에서 제공하는 내용을 살펴보자.https://grafana.com/grafana/dashboards/11378-justai-system-monitor/ 각각 그래프를 나타내기 위한 지표는 아래와 같다GC count : jvm_gc_pause_seconds_count..
2025.04.02