2013-10-16 49 views
1

我有我的应用程序内存总是生长在Xcode的5个问题,而另一方面我也没发现什么东西可能造成泄漏,过度分配的内存等了解内存报告

当然,我明白没有一个自动调试工具不能100%检测到不正确的人员。

我做的代码简单和平:

- (IBAction)buttonTapped:(id)sender { 

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

    return;   
} 

我已经上马项目,按下按钮3次,我已经有了:

enter image description here

正如你看到的 - 每一次窃听,记忆总是在增长,但为什么?我真的很好奇 - 实际上,这张图表为什么会发生?

通过分配模板剖析并没有表现出什么超乎寻常:

enter image description here

回答

0

上图将是相同的活动监测仪显示的“实际内存使用”。我远不及专家(可能很容易出错),但我的理论是,只要操作系统有足够的内存来存储应用程序,它就会为您的应用程序使用(当您的应用程序请求它时)。操作系统不会立即回收该内存,因为它不知道您的应用在不久的将来是否需要它。因此,操作系统提供给应用程序的总可用内存将随着每次分配而增加(假设操作系统有内存可用)。

在我的一个应用程序中,任何给定时间的分配内存大约为110 megs,但活动监视器给出的实际内存使用量为160个megs。不要太担心活动监视器。内存将在操作系统发布时发生内存警告(假设您并未真正使用内存并且未使应用程序崩溃)。