Objective-C 가비지 수집기는 정확히 무엇을 수집합니까? 예를 들어 Objective-C 2.0으로 프로그램을 작성하고 일반 C 구조체를 사용하는 경우 수동으로 해당 메모리를 해제하는 것에 대해 걱정할 필요가 있습니까?Objective-C 2.0 가비지 수집은 C 구조를 수집합니까?
답변
힙 메모리의 경우 사용자가 기본적으로 사용합니다. NSAllocateCollectable
또는 NSReallocateCollectable
과 함께 힙 메모리를 할당하거나 NSMakeCollectable
과 같은 API를 통해 CoreFoundation 객체를 가비지 수집기로 명시 적으로 넘겨주지 않는 한 GC는 메모리에 대해 전혀 모르고 있으며 관리하지 않습니다. 반대로 GC가 활성화되면 +alloc
/-init
으로 생성 된 Objective-C 객체는 보완적인 API 호출을 통해 달리 명시하지 않는 한 GC에 의해 관리됩니다.
http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/GarbageCollection/
당신은 힙 구조를 할당 할 malloc()
를 사용하는 경우, I 정말 의심이 (man 페이지는 그것에 대해 아무것도 언급하지 않지만, 애플이 ObjC2 런타임에 대한 malloc
를 재 작성하는 것이 가능하다). NSAllocateCollectable()
을 사용하는 경우 그렇습니다.
구조가 스택에 만들어진 경우 프레임이 종료 되 자마자 파괴되므로 컬렉션이 필요 없습니다.
+1 스택에 할당 된 구조체에 어떤 일이 일어나는 지 언급하고 있습니다. –
- 1. Java에서 가비지 수집은 어떻게 작동합니까?
- 2. 오류가 발생하면 lua 가비지 수집합니까?
- 3. 기능을 평가하기 전에 가비지 수집합니까?
- 4. Python의 가비지 수집은 클래스 메소드와 어떻게 작동합니까?
- 5. numpy 배열을 사용하는 파이썬 가비지 수집은 어떻게 추가되고 삭제됩니까?
- 6. 세션의 가비지 수집은 PHP에서 데이터베이스로 세션을 관리 할 때 발생합니까?
- 7. 가비지 수집은 릴리스 모드에서 현재 메모리 사용을 줄이지 않습니다. 왜?
- 8. 자바 가비지 수집은 성능에 어느 정도 영향을 줍니까?
- 9. 정확히 가비지 수집은 무엇이며 ActionScript 3.0에서는 어떻게 처리합니까?
- 10. .NET 가비지 컬렉션 (Garbage Collection)
- 11. NumberFormatter - ObjectiveC
- 12. ObjectiveC 코드에서 C++ 클래스의 정적 필드 사용
- 13. GC 수집은 무엇입니까?
- 14. 가비지 결과! C++ LinkedList의
- 15. 오브젝티브 -C 가비지 컬렉션
- 16. InterfaceBuilder에서 이미지 시퀀스로드 -ObjectiveC
- 17. Google은 짹짹을 어떻게 수집합니까?
- 18. ObjectiveC 임의 숫자
- 19. MulticastDelegate in ObjectiveC
- 20. Shapefile with ObjectiveC
- 21. 내부 개체에 대한 가비지 수집
- 22. Android에서 가비지 수집은 프로세스 또는 시스템별로 수행 되었습니까? 당신과 같은 무언가를 볼 때 로그에서
- 23. C# 가비지 컬렉터 교차 참조
- 24. C++ 연산자 오버로딩시의 가비지 값
- 25. Objective-C 및 가비지 수집
- 26. 응용 프로그램은 통계를 어떻게 수집합니까?
- 27. ObjectiveC/iPhone의 TwitPic API 사용하기
- 28. 어떻게 경쟁률에 대한 정보를 수집합니까?
- 29. SQL Server에서 어떻게 통계를 수집합니까?
- 30. iphone objectiveC 할당/해제 질문
+1 가비지 컬렉션 프로그래밍 가이드는 내가 읽은 가장 흥미로운 기술 글 중 하나입니다. –
NSAllocateCollectable은 제가 찾던 정확한 것입니다, 감사합니다! –