CFNetwork在下载图像时占用大量内存

时间:2013-10-22 17:05:33

标签: ios xcode instruments cfnetwork afnetworking-2

首先,我不确定这是AFNetworking问题还是CFNetwork。

我在iOS应用中使用AFNetworking,可下载数千张图片。这是通过NSMutableURLRequest,AFHTTPRequestOperation(使用AFHTTPResponseSerializer),NSOperationQueue(NSOperationQueue上的maxConcurrentOperationCount设置为8 btw)实现的。

我所看到的是,当这些图像从服务器下载时,我的应用程序的内存占用量显着增加。使用工具中的分配(XCode5),看起来很多内存都转到CFNetwork中的HTTPProtocol :: bytesAvailable中的CFData。

enter image description here

虽然我对CFNetwork一无所知,但我只是推测在下载图像时,某些CFData尚未发布,导致大量内存暂时积累。

为了清楚起见,这个内存最终会以某种方式在某个地方发布,因为我看到一段时间内仪器内存占用量下降了,但我关注的是图像下载时会发生什么。

enter image description here

奇怪的是,如果maxConcurrentOperationCount = 8,你会认为任何时候都不会下载超过8张图片......

这是其他人遇到过的问题吗?如果有的话,该怎么解决?能否以某种方式配置AFNetworking,以免发生这种情况?

感谢。

1 个答案:

答案 0 :(得分:0)

AFNetworking具有操作队列,您可以按如下方式设置最大并发操作计数:

[[requestOperationManager operationQueue] setMaxConcurrentOperationCount:5];