2012-03-15 2 views
1

GWT가 가비지 수집을 관리하고 응용 프로그램 내에서 더 이상 위젯이나 변수가 더 이상 참조되지 않을 때 메모리 싱크 (일명 누설)가 발생하는 것을 방지 할 수 있다고 가정합니다. .GWT 주기적 할당/링크의 가비지 수집

그래서 위젯/객체가 앱의 다른 곳에서 참조되거나 링크 될 수 있기 때문에 참조/변수를 null로 설정하는 것은 충분하지 않습니다. 특히 나무에서 나는 treeitems와 관련된 정보를 해싱합니다.

위의 추정에 반대하는 사람이 있으면 마음을 말하십시오.

좋습니다. 개체의 클러스터가 서로를 참조하고 있지만 전체적으로 활발히 사용되는 개체/변수를 추적 할 수있는 참조 체인이없는 경우는 어떨까요?

간단한 사례는 이중 링크 목록으로, 이중 링크 목록 클래스에서 인스턴스화 한 이중 링크 목록입니다. 또는 내가 직접 쓴 클래스에서 인스턴스화 된 순환 목록. 이중 연결 목록 또는 순환 목록이 활성 구성 요소/객체/변수에 의해 더 이상 참조되지 않는 경우 어떻게됩니까?

GWT gc는 이러한 목록을 수집하고 파괴하는 방법을 알고 있습니까?

아니요, 메모리 싱크가 쌓이지 않도록주의해야 할주의 사항이나 디자인 패턴은 무엇입니까?

답변

2

이것은 모든 가비지 수집 프레임 워크가 처리 방법을 알고있는 것입니다. GWT가 자체 JavaScript가 아닌 Javascript의 GC에 의존한다고 생각하지만 말입니다.

this section on Wikipedia을 살펴보면 왜 이중 연결 목록 구조가 올바르게 가비지 수집되는지 이해할 수 있습니다. 기본적으로 참조되지 않은 목록에는 어떤 루트도 접근 할 수 없습니다.