我开发了一个应用程序,可以从站点下载网页。 对于庞大的网站,它将运行很长时间。 我注意到占用的内存不断增加(下载2600个网页后从30M增加到300M),但是Instrument中没有任何内存泄漏。
下载3648个网页后,其信息
停止下载过程后,占用的内存不会减少以释放内存。
我更改所有代码
[NSString stringWithFormat:@"someThing"];
到
[[NSString alloc] initWithFormat:@"someThing"];
有所改善,占用内存降至300m
欢迎评论
答案 0 :(得分:1)
此图表是分配的总数,而不是当前的内存使用情况。 “永久”列(尚未释放的分配)约为40MB。它告诉您的是,您已在各个时间分配了约5.68GB的数据,并释放了几乎所有数据。这就是为什么红色条几乎完全是淡红色,而左侧只有一点纯红色的原因。
这表明可能存在通过重用更多内存而不是分配和释放内存来提高性能的方法(这非常耗时)。或者通过避免不必要的临时分配。但是,如果您没有性能问题,这里就没有实际问题。