본문 바로가기

GC

(2)
[GC] GC 시작하기 - 2(Old 영역) Old 영역에 대한 GC Old 영역은 기본적으로 데이터가 가득 차면 GC를 실행한다. GC 방식에 따라 처리 절차가 달라지는데, JDK 7 기준으로 아래 5가지 방식이 있다.(JDK 9인가 10에 GC 알고리즘 관련 업데이트 된 내용이 있었다. 추후 조사해보자) Serial GC Parallel GC Parallel Old GC(Parallel Compacting GC) Concurrent Mark & Sweep GC(이하 CMS) G1(Garbage First) GC Serial GC Old 영역의 GC는 mark-sweep-compact이라는 알고리즘을 사용한다. 이 알고리즘의 첫 단계는 Old 영역에 살아있는 객체를 식별(Mark)하는 것이다. 그 다음에는 힙(heap)의 앞 부분부터 확인하여, ..
[GC] GC 시작하기 - 1 (GC 과정, Minor GC) GC 이론에 대해 차근차근 이해해 볼 예정이다. 기본 내용은 여기를 참고해 기재할 예정이라, 글의 목록 내용등이 거의 일치하겠지만, 내가 이해한 방식으로 다시 글을 작성하기 때문에 근소하게 다를 것이다. 하늘색 글자들은, 포인트가 될만한 내용을 표시한 것이고 초록색 글자들은, 추후 또 하나의 주제로 찾아볼만한 내용들에 대해서는 표시한 것이니 참고 바람 시작하기 GC에 대해 알아보기전에 알아야 할 용어가 있다. 바로 'stop-the-world'. 여기서 말하는 world는 JVM에서 실행되고 있는 애플리케이션을 뜻한다. 그럼 'stop-the-world'는? GC가 JVM에게 본인의 작업을 수행하기에 앞서 명령을 내린다고 생각하면 된다. stop-the-word가 발생하면 GC를 실행하는 쓰레드를 제외한..