마크 스윕 가비지 컬렉터의 첫 번째 단계는 힙에있는 모든 활성 객체를 표시 (찾기)하는 것입니다. 이렇게하려면 모든 표시가 시작되는 시작점 또는 루트가 있어야합니다. GC는 그러한 뿌리를 어떻게 식별합니까?가비지 컬렉터가 루트를 식별하는 방법
2
A
답변
2
. 여기에 마크 스윕 특허 문서의 문장입니다.
첫 번째 단계에서는 현재 실행중인 프로그램의 개체에 대한 모든 직접적인 참조를 식별 할 수 있습니다. 이러한 참조를 루트라고 부르거나 루트 집합을 함께 사용하면 해당 참조를 모두 식별하는 프로세스를 루트 집합 열거 형이라고 할 수 있습니다.
다음은 특허 문서 링크입니다. Mark sweep patent link
.NET 사람이긴하지만 Basics of mark sweep 링크가 어떻게 작동하는지 잘 이해할 수 있다고 생각합니다.
2
"호출 집합의 어느 위치에서든 참조되는 모든 개체 (즉, 함수의 모든 로컬 변수와 매개 변수)는 을 포함하여 고유 한 개체 집합에 도달 할 수 있다고 가정합니다. 현재)를 호출하고 전역 변수되고. 모든 뿌리가 식별됩니다 루트 설정 enumeratios라는 기술을 사용하여
관련 문제
- 1. 가비지 컬렉터가 애플리케이션을 느리게하는 것을 막는 방법
- 2. 가비지 컬렉터가 Dispose()를 호출합니까?
- 3. 메모리 누수 - 가비지 컬렉터가 없음
- 4. 가비지 컬렉터가 공개하는 오브젝트 찾기 :
- 5. wxWidgets에는 일종의 가비지 컬렉터가 있습니까?
- 6. iPhone OS 3.0에는 실제 가비지 컬렉터가 있습니까?
- 7. IDispose가 필요합니다. 루프 끝에서 가비지 컬렉터가 작동합니까?
- 8. 도메인 모델에서 집계 루트를 식별하는 방법은 무엇입니까?
- 9. JS 엔진은 가비지 콜렉션 루트를 언제 작성합니까?
- 10. .NET에 자동 가비지 컬렉터가 있기 때문에 왜이 Dispose() 메소드가 필요합니까?
- 11. 가비지 컬렉터 대 풀
- 12. 타사 가비지 수집기에서 사용되는 방법
- 13. 도메인 드라이브 디자인에서 집계 루트를 식별하는 데 어떤 방법을 사용합니까?
- 14. PHP 루트를 포함하는 방법
- 15. 가비지 컬렉터 플래시 플레이어
- 16. apport sys.excepthook의 루트를 얻는 방법?
- 17. 벡터 및 가비지 컬렉터
- 18. Eclipse가 키워드를 식별하는 방법
- 19. EXE가 WPF인지 식별하는 방법
- 20. HttpWebRequest : 브라우저로 식별하는 방법?
- 21. 익명 함수를 식별하는 방법
- 22. 화면 크기를 식별하는 방법
- 23. http 리디렉션을 식별하는 방법
- 24. 새 iPad를 식별하는 방법
- 25. HTML5를 식별하는 방법
- 26. 버튼을 식별하는 방법
- 27. 연결을 고유하게 식별하는 방법?
- 28. 올바르게 이벤트를 식별하는 방법
- 29. EKEvent에서 EKAlarm을 식별하는 방법
- 30. udev로 장치를 식별하는 방법