我正在分析一个iOS应用程序,用Instruments检查内存泄漏。我选择了Allocations和/或Leakage来检查。
当应用程序运行时,All Allocations增长到1.3MB。点击一个按钮,显示一个选择器,然后选择一个项目并删除选择器,All Allocations成长。我检查没有明显的内存泄漏,因为没有RED条。
有任何线索吗?我发现有很多未知的Malloc 16 Bytes,... Malloc 32 Bytes,...但是我没有有用的信息可以跟踪。
还有其他方法可以解决这些问题吗?
答案 0 :(得分:1)
使用快照查找内存折痕,请参阅:bbum blog
基本上有一种方法是运行仪器分配工具,获取快照,运行代码直观和另一个快照重复3或4次。这将指示在迭代期间分配但未释放的内存。
要弄清楚披露的结果,以查看个别分配。
如果您需要查看对象使用仪器的保留,释放和自动释放的位置:
在仪器中运行,在分配中设置“记录参考计数”(您必须停止记录以设置选项)。导致选择器运行,停止记录,搜索那里的ivar(datePickerView),向下钻取,你将能够看到所有保留,释放和自动释放发生的位置。