java gc
GC(Garbage Collection) - summary
GC(Garbage Collection) GC란, 이미 할당된 메모리에서 더 이상 사용하지 않는 메모리를 해제하는 행동. 사용되지 않는 메모리의 대상은 Heap과 Method Area에서 사용되지 않는 Object를 의미. 소스상에서 close()는 Object 사용중지 의사표현일 뿐 Object를 메모리에서 삭제하겠다는 의미가 아님. System.GC()를 명시적으로 호출할 수 있지만, Full GC를 수행시키는 메소드이기 때문에 Stop-the-world 시간이 길고 무거운 작업이며 또한 반드시 즉시 수행한다는 보장도 없는 메소드이기에 사용을 지양. GC 작동원리 Heap을 3개의 영역으로 나누어 관리. young 영역(Young Generation): 새롭게 생성한 객체의 대부분이 위치해있음. 가득..
GC(Garbage Collection) - 2 (GC Algorithm 구동방식)
GC Algorithm 구동방식 Garbage : 참조되지 않고 있는 객체 reachability : 참조되고 있는 상태 unreachability : 참조되지 않는 상태 참조 상태중 최초에 참조되는 상태를 루트 셋이라고 하는데, 루트 셋에 연결되지 않고 unreachability한 객체들을 garbage처리한다. Heap 영역에 있는 객체들은 총 4가지의 종류가 있다. Heap내의 다른 객체에 의한 참조 Java stack, 즉, 메소드 내에서 사용하는 지역변수와 파라미터에 의한 참조 네이티브 영역에서 생성된 객체에 의한 참조 메서드 영역의 정적 변수에 의한 참조 2,3,4가 루트 셋이다. Serial GC : 적은 CPU, 메모리일 때 적합. Parallel GC : 다수의 스레드를 GC로 사용.