使用Instruments进行内存分析

4
我尝试使用Instruments来分析一个应用程序,以查看该应用程序使用了多少内存以及是否存在一些泄漏问题。
稍微调整了一下之后,我消除了一些泄漏问题,现在没有任何泄漏。然而,我注意到每次推出并弹回一些视图控制器时,内存都会上升,然后略微下降,但不会降至推出之前的水平,例如“Live Bytes”显示:
- 推出之前为1.8 MB - 推出之后为2.1 MB - 弹回之后为2.0 MB - 第二次推出之后为2.1 MB
有趣的是,第二次推出(甚至第10次)后,它不会增加超过先前的值,因此尽管看起来像是泄漏,但它可能是某种缓存或其他东西。我最初认为这是我的代码特定问题,但后来我几乎能够复制任何视图控制器,无论内容多么简单。
这种现象有合理的解释吗?还是我在构建所有示例时都做错了什么?
1个回答

3

这是由于自动释放池和为您准备的应该被释放的内存。它会在需要的时间内保留。当您将更多的视图控制器推入堆栈时,会创建更多的自动释放对象。其中一些对象将比其他对象更早地被释放,但时间会有所不同,因此您的内存波动是正常的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接