[JVM] Garbage Collection
JAVA 2021. 12. 10. 08:44

JVM에서 GC를 빼놓으면 JVM동작 원리에 대해여 깊게 요해하기 힘들다. C++ 같은 언어에서는 개발자가 메모리영역에 대하여 관리하지만 JAVA를 비롯한 많은 언어에서는 GC를 도입하여 내부에서 처리하도록 한다. GC란 JVM에서 메모리에서 더 이상 사용되지 않는 객체를 찾아서 제거하는 행위를 말한다. 먼저 GC에 대하여 깊이 설명하기 전에 GC의 버전에 대하여 알아보자 Serial GC: 제일 오래된 GC이다. 단일 Thread로 동작하며 동작시에는 "Stop The World"라는 상태에 진입하게 된다. 이 상태에서는 모든 Thread가 멈추가 GC가 끝나길 기다린다. 이 방식은 Mark Compact 알고리즘을 사용하여 마크한 객체를 삭제한 후 메모리를 정리(객체 이동)하는 행위를 추가적으로 진행..