SERIES

Garbage Collection

4 Posts·Last updated on August 01, 2024

JVM Garbage Collection (1) Reference Counting, Tracing Garbage Collection

July 17, 2024

JVM 개요 자바프로그램이 JVM 위에서 실행하기까지 다음과 같은 과정을 거칩니다. 자바 프로그램으로 작성한 파일을 javac 컴파일러를 이용해 바이트코드(.class)로 컴파일 합니다 컴파일된 파일을 ClassLoader에 의해 JVM 메모리에 저장합니다. (loading, linking, initialising) Interpreter는 로드된 코…


JVM Garbage Collection (2) Mark & Sweep

July 18, 2024

Mark and Sweep 알고리즘은 Garbage Collection의 기본 알고리즘 입니다. JVM에서 사용되는 실제 알고리즘은 훨씬 복잡하지만 Mark & Sweep 알고리즘이 기반이므로 확실히 이해해야 합니다. Mark 단계 Mark 단계는 힙 영역에서 live objects를 찾아내는 과정입니다. a) JVM은 힙에 할당된 모든 객체에 대한 포인…


JVM Garbage Collection (3) Young & Old Generation

July 19, 2024

약한 세대 가설 (Weak Generational Hypothesis) 자바 가상 머신(JVM)의 메모리 관리 방식에 큰 영향을 준 중요한 개념입니다. 이 가설을 이해하면 다양한 가비지 컬렉션 알고리즘의 작동 원리를 더 잘 이해할 수 있습니다. 이 가설의 핵심 내용은 "대부분의 객체는 젊어서 죽는다"입니다. 쉽게 말해, 프로그램에서 새로 만들어진 객체들 …


JVM Garbage Collection (4) GC 종류

August 01, 2024

Old 영역은 기본적으로 데이터가 가득 차면 GC를 실행합니다. GC 방식은 , , , , , 가 있습니다. Serial GC (-XX: +UseSerialGC) 는 Young Generation에서는 방식을 사용하며, Old Generation에서는 방식을 사용합니다. 는 garbage collection을 위해 단일 스레드를 사용합니다. 또한 적은 …