首先,我不确定这是AFNetworking问题还是CFNetwork。
我在iOS应用中使用AFNetworking,可下载数千张图片。这是通过NSMutableURLRequest,AFHTTPRequestOperation(使用AFHTTPResponseSerializer),NSOperationQueue(NSOperationQueue上的maxConcurrentOperationCount设置为8 btw)实现的。
我所看到的是,当这些图像从服务器下载时,我的应用程序的内存占用量显着增加。使用工具中的分配(XCode5),看起来很多内存都转到CFNetwork中的HTTPProtocol :: bytesAvailable中的CFData。
虽然我对CFNetwork一无所知,但我只是推测在下载图像时,某些CFData尚未发布,导致大量内存暂时积累。
为了清楚起见,这个内存最终会以某种方式在某个地方发布,因为我看到一段时间内仪器内存占用量下降了,但我关注的是图像下载时会发生什么。
奇怪的是,如果maxConcurrentOperationCount = 8,你会认为任何时候都不会下载超过8张图片......
这是其他人遇到过的问题吗?如果有的话,该怎么解决?能否以某种方式配置AFNetworking,以免发生这种情况?
感谢。
答案 0 :(得分:0)
AFNetworking具有操作队列,您可以按如下方式设置最大并发操作计数:
[[requestOperationManager operationQueue] setMaxConcurrentOperationCount:5];