(MonoTouch) MT를 사용하는 iOS 앱에서 메모리 누수가 발생하지 않도록 MT GC가 어떻게 작동하는지 이해하려고합니다.Monotouch : 가비지 수집기, 관리되는 개체 및 관리되지 않는 개체
MT 메모리 관리는 다음과 같은 방식으로 작동합니다. 각 개체에는 "친애하는 GC, 이제는 언제든지 공개 될 수 있습니다."라는 플래그가 있습니다. GC가 실행되면 플래그를 확인하고 메모리에서 오브젝트를 제거합니다. 그래서 MT는 모든 객체를 일종의 limbo에 넣습니다. 객체는 그 안에있는 객체가 해제 될 것입니다 (다음 이벤트주기, 아마도). 그것은 일종의 autorealease 메커니즘입니다. 그러나 dispose 메서드를 호출하는 객체를 명시 적으로 릴리스 할 수도 있습니다. 이 경우 유지 해제 메커니즘을 채택하는 것을 의미합니다.
MT에 대해 읽었을 때 관리 힙 (예 : 이미지 참조)과 관리되지 않는 힙 (예 : 이미지)으로 이동하는 개체가 있다는 것을 알았습니다. 첫 번째 경우 (관리되는 것)에서 나는 그것에 대해 걱정할 필요가 없다. GC는 잘 작동한다. 두 번째 (관리되지 않는 경우)에서는 메모리를 명시 적으로 릴리스해야합니다. 왜이 차이가 있습니까? 관리되지 않는 객체와 관리되는 객체를 구별 할 수있는 방법과 메모리 호출 dispose 메서드를 명시 적으로 릴리스하는 방법을 설명해 주시겠습니까?
미리 감사드립니다.
추가 읽기 : http://stackoverflow.com/questions/2818315/iphone-no-garbage-collection-what-about-monotouch –