【问题标题】:Understanding Memory Report了解内存报告
【发布时间】:2013-10-16 13:21:40
【问题描述】:

我有一个问题,我的应用程序的内存在 Xcode 5 中总是增长,另一方面,我没有发现任何可能导致泄漏、过度分配内存等的东西。

当然,我知道没有任何一种自动调试工具不能 100% 检测到不正确的人员。

我已经简化了代码:

- (IBAction)buttonTapped:(id)sender {

    for (int i = 1; i < 5000; i ++) {
        NSLog(@"i equeal %d", i);
    }

    return;        
}

我已经启动了项目,按了 3 次按钮,我得到了:

如您所见 - 每次敲击时,内存都会增长,但为什么呢?我真的很想知道 - 实际上,这个图表是为了什么以及为什么会发生?

通过分配模板进行分析没有显示任何异常:

【问题讨论】:

    标签: ios memory-management xcode5


    【解决方案1】:

    顶部图表将与 Activity Monitor Instrument 中显示的“实际内存使用”相同。我远不是专家(而且很容易出错),但我的理论是,只要操作系统有内存可供您的应用程序使用,它就会将其提供给您的应用程序使用(当您的应用程序要求时)。操作系统不会立即回收该内存,因为它不知道您的应用在不久的将来是否需要它。因此,操作系统为您的应用分配的总可用内存将随着每次分配而增加(假设操作系统有内存可分配)。

    在我的一个应用程序中,任何给定时间分配的内存大约为 110 兆,但活动监视器给出的实际内存使用量为 160 兆。不要太担心活动监视器。当您收到内存警告时,操作系统将释放内存(假设您实际上并没有使用内存并且没有使应用程序崩溃)。

    【讨论】:

      猜你喜欢
      • 2014-04-27
      • 2012-10-01
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多