占用内存不断增加,但没有内存泄漏
occupied memory increased continuously, but no memory leak
我开发了一个从网站下载网页的应用程序。
对于庞大的网站来说,会运行很久。
我注意到占用内存不断增加(下载2600个网页后从30M增加到300M),但Instrument中没有任何内存泄漏。
下载3648个网页后,其信息
我停止下载程序后,占用的内存并没有因为内存释放而减少。
我更改所有代码
[NSString stringWithFormat:@"someThing"];
到
[[NSString alloc] initWithFormat:@"someThing"];
一点改进,占用内存下降到300m
欢迎您的评论
这个图表是分配的总数,不是当前的内存使用量。 "persistent" 列(尚未释放的分配)约为 40MB。它告诉您的是,您在不同时间分配了大约 5.68GB 的数据并释放了几乎所有数据。这就是为什么红色条几乎完全是淡红色,左边只有一点纯红色。
这表明可能有一些方法可以通过重用更多内存而不是分配和释放内存来提高性能(这非常 time-consuming)。或者也许通过避免不必要的临时分配。但是,如果您没有遇到性能问题,那么这里就没有实际问题。
我开发了一个从网站下载网页的应用程序。 对于庞大的网站来说,会运行很久。 我注意到占用内存不断增加(下载2600个网页后从30M增加到300M),但Instrument中没有任何内存泄漏。
下载3648个网页后,其信息
我停止下载程序后,占用的内存并没有因为内存释放而减少。
我更改所有代码
[NSString stringWithFormat:@"someThing"];
到
[[NSString alloc] initWithFormat:@"someThing"];
一点改进,占用内存下降到300m
欢迎您的评论
这个图表是分配的总数,不是当前的内存使用量。 "persistent" 列(尚未释放的分配)约为 40MB。它告诉您的是,您在不同时间分配了大约 5.68GB 的数据并释放了几乎所有数据。这就是为什么红色条几乎完全是淡红色,左边只有一点纯红色。
这表明可能有一些方法可以通过重用更多内存而不是分配和释放内存来提高性能(这非常 time-consuming)。或者也许通过避免不必要的临时分配。但是,如果您没有遇到性能问题,那么这里就没有实际问题。