모든 가비지 수집기에는 매우 까다로운 부분이 있으며, 일부 설명에서는 "전체 스캔"또는 "전체 수집"입니다. 주기적으로 무작위로 간헐적으로 모든 객체를 스캔해야합니다. 세대 별 수집기는 전체 검색을 연기하고 지속 시간을 최소화하는 것이 좋지만 여전히 필요합니다.
세대 컬렉터는 때때로 "간호사"공간이라고하는 것에 초점을 맞출 것이지만, 결국 "이전"세대 공간에서 수집해야하므로 메모리의 전체 스캔이 발생합니다.
이 전체 검색은 거의 모든 메모리 캐싱 / 가상화 체계가이 경우 성능 향상에서 크게 실패하거나 실패한다는 점에서 거의 모든 메모리 캐싱 및 (특히!) 가상화 체계와 호환되지 않습니다.
따라서이 질문에 대한 주요 대답은 전체 스캔이 얼마나 자주 트리거되는지, 그리고 그 결과가 발생했을 때의 영향과 허용 될 수있는 경우의 "나쁜"것입니다. 이것은 더 응용 프로그램 종속 속성 / 질문으로 귀결됩니다.
다시 말해, 수집기의 작동 중 "대부분"에 대해 캐시는 아마도 캐시를 도울 것입니다 (캐시와 "젊은"보육 공간은 일반적으로 겹칠 것입니다!), 주기적, 간헐적, 최종적, 불가피한, 무거움, "이전 세대"공간이 완전히 수집되고 캐시 "적중률"이 외부에있는 많은 오브젝트가 전체에 의해 꽉 찬 루프로 페치 될 때 성능이 "대규모"[저하] 급증 할 수도 있습니다. 스캔 / 수집주기. 다시 말해, 피할 수없는주기적인 불연속성 (통계 추정 / 평균 / 성능 경향 등이 오도되고 적용 할 수없는 경우)입니다.
현재 등장하는 것은 기본 메모리 관리 시스템 (캐싱 / 가상화)과 맞물 리도록 설계된 새로운 수집 시스템입니다. 별도의 메모리 수집, 캐싱 및 가상화 시스템을 완전히 분리하는 역사적 접근 방식은 세 가지 측면을 모두 결합 / 통합 / 어드레싱하는 접근 방식뿐만 아니라 수행되지 않는 것으로 보입니다.
Zhou와 Demsky의 캐시 인식 가비지 콜렉션을 참조하십시오 .