例如,我使用带输入流的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. 内存泄漏自动释放崩溃
- 14. 内存泄漏释放字符数组
- 15. 内存泄漏 - 释放和删除
- 16. gtk_file_chooser_get_filename,结果未释放,内存泄漏?
- 17. 仪器泄漏工具中没有显示简单泄漏
- 18. 内存泄漏:
- 19. 内存泄漏
- 20. 内存泄漏
- 21. 内存泄漏
- 22. 内存泄漏
- 23. 内存泄漏
- 24. 内存泄漏:
- 25. 内存泄漏
- 26. 内存泄漏
- 27. 内存泄漏
- 28. 内存泄漏
- 29. 内存泄漏
- 30. 内存泄漏
另一个导入到数据库的线程被autorelease池覆盖。然后我在苹果的文章中推荐标记世代。有些代人认为我主线程的主要(),并分析后说“100%”(这是什么意思?)。但它只有一次。在其他时代,只包含libsystem_c.dylib调用 – Arsynth
由于您正在辅助线程上执行一些操作,您确定没有进行保留循环吗? – Andrea
在“泄漏工具”可以发现泄漏的情况下,它不是保修吗?所以我在全局队列中使用dispatch_async。这是个坏主意?在相同的分离线程中创建,编辑和销毁的托管上下文 – Arsynth