这是在iOS上,设备是iPad。
以下是发生的事情:
Program received signal: “0”.
我使用仪器泄漏检查了泄漏,检测到没有泄漏。 但是,根据活动监视器,我的应用程序最初使用30 MB,并且随着时间的推移增长到超过100mb(大约每秒200kb!)。所以,Leaks显然没有发现所有内存泄漏。
所以我的问题是:如果Leaks无法检测到它,是否有找到它们的一般提示,是否有更好的工具来查找这些泄漏?
答案 0 :(得分:6)
这就是我接近它的方式,
使用前缀为所有类命名,以便在Instruments
XCode->运行 - >使用效果工具运行 - >分配
现在停止您的应用并在搜索框中输入您怀疑泄漏的类名称。 (这是前缀很方便的地方)。启动仪器再次使用“录制”按钮
答案 1 :(得分:1)
在您提到的情况下,始终没有必要泄漏。您可能在此处提到的执行时间点使用了大量自动释放的对象。 您可能正在向集合对象添加大型对象。如果是这种情况,请为该情况使用单独的自动释放池,减少应用程序的内存占用。
答案 2 :(得分:0)
如果您可以使用工具来查找泄漏,这是首选,但如果完全难倒,我会使用另一种技术。
从注释几乎所有内容开始,然后一次慢慢添加一个组件,直到再次发生内存泄漏。这样,您就可以了解产生问题的函数或代码块。