1

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

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

我做了简单的代码和平:

- (IBAction)buttonTapped:(id)sender {

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

    return;        
}

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

在此处输入图像描述

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

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

在此处输入图像描述

4

1 回答 1

0

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

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

于 2013-10-16T13:43:12.183 回答