가비지 컬렉션

JAVA

다양한 가비지 컬렉션(Garbage Collection) 알고리즘

다양한 가비지 컬렉션(Garbage Collection) 알고리즘 JVM이 메모리를 자동으로 관리해 주는 것은 개발자의 입장에서 상당한 메리트이다. 하지만 문제는 GC를 수행하기 위해 Stop The World에 의해 애플리케이션이 중지되는 것에 있다. Heap의 사이즈가 커지면서 애플리케이션의 지연(Suspend) 현상이 두드러지게 되었고, 이를 막기 위해 다양한 Garbage Collection(가비지 컬렉션) 알고리즘을 지원하고 있다. Serial GC Serial GC의 Young 영역은 앞서 설명한 알고리즘(Mark Sweep)대로 수행된다. 하지만 Old 영역에서는 Mark Sweep Compact 알고리즘이 사용되는데, 기존의 Mark Sweep에 Compact라는 작업이 추가되었다. Com..

JAVA

[JAVA] 가비지 컬렉션(Garbage Collection)의 개념 및 동작 원리

가비지 컬렉션(Garbage Collection) 개발을 하다 보면 유효하지 않은 메모리인 가비지(Garbage)가 발생한다. C/C++에서는 메모리 누수(Memory Leak)를 막기 위해 객체를 생성한 후 사용하지 않는 객체의 메모리를 프로그래머가 직접 해제해주어야 한다. 하지만 JAVA는 JVM의 가비지 컬렉터가 불필요한 메모리를 알아서 정리해 주기 때문에 프로그래머가 직접 해제할 필요가 없다. 일반적으로 다음과 같은 경우에 GC의 대상이 된다. 객체가 NULL인 경우 (ex. String str = null) 블럭 실행 종료 후, 블럭 안에서 생성된 객체 부모 객체가 NULL인 경우, 포함하는 자식 객체 Java에서는 메모리 누수를 방지하기 위해 가비지 컬렉터(Garbage Collector, G..

javajoha
'가비지 컬렉션' 태그의 글 목록