왜 JVM GC는 디스크,램과 달리 파편화/단편화 문제를 압축(memory compression)으로 해결한걸까?

·
JAVA
궁금증GC 알고리즘 중, 마크-스윕 알고리즘은 회수 대상에 대해서 마킹을 진행하고, 마킹된 대상들을 쓸어담아서 회수한다. 따라서 메모리에 살아남은 객체들 사이사이에 파편화된 공간이 남게 된다.이런 방식의 문제점은 메모리의 파편화가 생긴다는 것이다. 살아남은 객체 사이사이 공간들은 일정한 크기가 아니라 들쭉날쭉한 크기로 남게 될 것이고, 큰 객체가 생겨났을 때 해당 공간을 활용하지 못할 것이다.GC 알고리즘에서는 마크-컴팩트 알고리즘 혹은 마크-카피 알고리즘을 통해 이 단편화 문제를 해결한다. 컴팩트 알고리즘은 살아남은 객체들을 메모리공간의 첫 번째 구역부터 차례로 차곡차곡 쌓고 남은 영역을 회수한다. 마크-카피 알고리즘은 살아남은 객체들을 사용하지 않는 공간에 차곡차곡 쌓고 남은 영역을 회수한다. 이 알..