iphone - 使用仪器进行内存分析

标签 iphone objective-c ios memory-management memory-leaks

我尝试使用 Instruments 分析应用程序以查看应用程序使用了多少内存以及是否存在泄漏。

稍微调整一下后,我消除了一些泄漏,现在它没有显示任何泄漏。但是,我注意到每次我推送一些 View Controller 并将其弹回时,内存都会上升,然后会下降一点,但不会达到推送前的水平,例如Live Bytes 显示

  • 推送前 1.8 MB
  • 推送后 2.1 MB
  • 弹出后 2.0 MB
  • 第二次推送后 2.1 MB

有趣的是,在第二次(甚至10次)压入后,它并没有增加到之前的值,所以虽然看起来像泄漏,但它可能是某种缓存或其他东西。我首先认为这是我的代码特有的东西,但后来我几乎可以用任何 View Controller 重现它,无论内容多么简单。

对于这种现象是否有合理的解释,或者我只是在我构建的所有示例中做了一些完全错误的事情?

最佳答案

那是发生在自动释放池的 b/c,以及应该为您释放的内存。只要需要,它就会一直存在。当您将更多 viewControllers 压入堆栈时,将创建更多自动释放的对象。有的会比其他的先释放,但是会很及时,所以你的内存波动是正常的。

关于iphone - 使用仪器进行内存分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6129608/

相关文章:

ios - 在呈现 UIPopoverViewController 时,我怎样才能使除 sourceView 之外的所有内容变暗?

iphone - 私有(private)合成属性(property)是矛盾的吗?

iphone - iOS 在另一个 uiview 中加载 uiview

iphone - UIImage imageOrientation 返回 0

ios - 两个单独的 cookie 存储(UIWebView 或 WKWebView)

iphone - 集合在枚举时发生了变异

iphone - iPhone 操作系统上的 NSCurrentLocaleDidChangeNotification

ios - CLCircularRegion 获取1英里半径内的随机点

iphone - 使用 IOS SDK 是否可以在另一个调用正在进行时(在后台)检测来电?

iphone - 如何使用 popToViewController 发送字符串值