【发布时间】:2019-11-11 01:03:34
【问题描述】:
我开发了一个应用程序来从网站下载网页。 对于庞大的网站,它会运行很长时间。 我注意到占用内存不断增加(下载2600个网页后从30M增加到300M),但Instrument中没有任何内存泄漏。
下载3648个网页后,其信息
我停止下载程序后,占用的内存不会因为内存释放而减少。
我更改所有代码
[NSString stringWithFormat:@"someThing"];
到
[[NSString alloc] initWithFormat:@"someThing"];
一点改善,占用内存下降到300m
欢迎您的评论
【问题讨论】:
-
Rob Napier 是对的,您应该关注“持久”数字,而不是瞬态或“总”数字,其中包括已释放的内存。您的持久数字看起来不错。
-
顺便说一句,您似乎非常重视没有任何报告的泄漏。不幸的是,这仅涵盖了潜在问题的一小部分。困扰我们项目的最常见的内存问题是强引用循环(也称为保留循环),并且这些问题不会被报告为泄漏。见How to debug memory leaks when Leaks instrument does not show them? 但是,同样,除非“持续”数字增加,否则不要担心。
标签: ios objective-c cocoa-touch instruments