2017-12-24 8 views
-2

golly 해시 - 라이프에서 GC를 실제로 이해할 수 없습니다. 간단한 버킷 해시를 사용하지만 해시 테이블에서 수집 한 노드 및 가비지를 저장하는 방법은 어떻게 결정됩니까? 스크립트의 코멘트가 나에게 어떤 혼란을 주 었는지.

누구나 작동 논리를 설명 할 수 있습니까? Golly Hash-life ProgramGolly HashTable 및 GC 작동 방법

+0

아래로 투표 한 이유가 무엇인가요? – Aran

답변

1

Golly는 간단한 마크 및 스윕 가비지 수집 전략을 사용합니다. 라이브 루트는 노드를 찾아 반환하는 재귀 루틴에 의해 관리되는 명시 적 배열 ("스택"이라고 함)에 보관됩니다. 메모리가 고갈되면 실시간 루트를 방문하여 라이브 노드를 표시 한 다음 메모리 블록을 주소 순서대로 스캔하여 사용 가능한 목록을 만듭니다.

이 간단한 정책은 테스트에서 참조 카운팅과 더 많은 "지능형"처분 전략을 포함한 여러 가지 대체 전략에서 우위를 점했습니다.

+0

그래서 모든 라이브 루트가 스택에 보관됩니다. 공간이 필요한 경우 결과가 새 노드에 대해 해제됩니다. – Aran