Tho*_*ann 2 iphone xcode memory-leaks instruments ios
很难解释我在主题行中需要什么.如果您有更好的想法,请随时编辑它.
问题如下:
iOS应用程序一次只能处理一个文档.每次关闭文档并打开一个新文档,即使它是相同的文档,内存使用量也会不断增加,并且总是以相同的数量增加.
所以有泄漏.代码不会释放(释放)某些东西.也许它是一个数组,它添加对文档项的引用,并且永远不会被清除,尽管它应该.
当然,泄漏工具在这里没有帮助,因为它都是"正确的"(它只能找到没有所有者的分配).
我如何使用Instruments(或dtrace)现在找到这个bugger?如果我可以简单地在仪器中识别其中一个未添加的对象,那将会有所帮助,其余的将很容易.
到目前为止,我一直在使用Allocations工具,将检查范围设置为旧文档关闭和新文档打开时的时间.尽管如此,这显示了数以千计的对象,其中只有一个是从前一个文档遗留下来的对象,尽管它不应该仍然存在.我需要识别的那个对象.
我想我需要的是Allocations工具中的一个功能,它减去刚刚添加的所有分配,并且还减去启动后存在的所有分配 - 剩下的是由新文档创建但从那时起未发布的项目.有没有办法获取收集的对象集合,将它们分组并设置这样的操作?可能不是.
每次打开文档时都会创建大约20000个对象,并且涉及大约50个源文件,通过查看源代码或手动检查所有对象是不可行的.
哦,静态分析仪也无济于事.
我想我弄清楚了:
秘诀在于正确使用Mark Heap按钮:
到目前为止,我只在加载新文档之前和之后尝试过一次.
但是,当我到这3次(负载,Heapshot,负载,Heapshot,负载,Heapshot),然后中间Heapshot会列出仍然活着只从它周围的两个文档负载之间,这正是我一直在寻找的对象对于.
| 归档时间: |
|
| 查看次数: |
1759 次 |
| 最近记录: |