例如,我使用帶輸入流的NSXMLParser。當解析器加載xml節點時,應用程序根據此節點創建NSManagedObject。如果創建了管理對象的計數器(簡單NSInteger的財產)超過50個,應用程序保存管理對象範圍內,則取全部聚集對象數組並refreshObject:OBJ mergeChanges:NO(有對象轉向故障) 滿載後到數據庫應用程序做同樣的事情發生錯誤,然後重置存儲在屬性中的上下文並使其無效並將所有引用清除爲託管對象。結果:50000個對象被保存,但內存部分釋放,沒有完全釋放(剩下約20兆字節)。 導入到coredata在後臺線程做@ autorelease的很多。 泄漏工具未顯示泄漏。我想不通爲什麼內存後沒有釋放操作泄漏工具沒有發現泄漏,但內存不釋放
1
A
回答
1
0
可能有很多原因,其中許多人可能與你的代碼做。還有其他一些可能性。你可以啓用殭屍,這會阻止內存被釋放。另外,CoreData也根據需要保留對象。
+0
殭屍已禁用,我檢查過它。 coreData是否保留對象而不管我的代碼? – Arsynth
相關問題
- 1. 內存泄漏 - 釋放calloc
- 2. CFMutableDataRef釋放,但仍使內存泄漏
- 3. valgrind沒有發現內存泄漏?
- 4. Android內存泄漏工具?
- 5. iPhone內存泄漏工具
- 6. C++發現內存泄漏
- 7. 釋放內存泄漏警告但不是自動釋放內存泄漏警告
- 8. 內存泄漏沒有檢測到CRT內存泄漏檢測
- 9. boost'ptr_container泄漏'釋放'?
- 10. 泄漏性能工具沒有檢測到明顯的內存泄漏
- 11. 分析結果VS泄漏的工具:iPhone內存泄漏
- 12. CGImageRef釋放和autoreleasepool後內存泄漏
- 13. gtk_file_chooser_get_filename,結果未釋放,內存泄漏?
- 14. 內存泄漏 - 釋放和刪除
- 15. 內存泄漏自動釋放崩潰
- 16. 內存泄漏釋放字符數組
- 17. 儘管釋放內存泄漏struct
- 18. 儀器泄漏工具中沒有顯示簡單泄漏
- 19. 內存泄漏
- 20. 內存泄漏:
- 21. 內存泄漏
- 22. 內存泄漏
- 23. 內存泄漏
- 24. 內存泄漏
- 25. 內存泄漏
- 26. 內存泄漏
- 27. 內存泄漏
- 28. 內存泄漏
- 29. 內存泄漏:
- 30. 內存泄漏
另一個導入到數據庫的線程被autorelease池覆蓋。然後我在蘋果的文章中推薦標記世代。有些代人認爲我主線程的主要(),並分析後說「100%」(這是什麼意思?)。但它只有一次。在其他時代,只包含libsystem_c.dylib調用 – Arsynth
由於您正在輔助線程上執行一些操作,您確定沒有進行保留循環嗎? – Andrea
在「泄漏工具」可以發現泄漏的情況下,它不是保修嗎?所以我在全局隊列中使用dispatch_async。這是個壞主意?在相同的分離線程中創建,編輯和銷燬的託管上下文 – Arsynth