繁体   English   中英

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

[英]CFNetwork large memory footprint while downloading images

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

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

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

在此处输入图片说明

虽然我对CFNetwork一无所知,但我只是在猜测正在下载映像时,某些CFData并未释放,这导致了大量内存的临时积累。

需要明确的是,该内存最终以某种方式释放,在某种程度上,正如我看到一段时间后在Instruments中的内存占用量下降一样,但是我担心的是图像下载时发生了什么。

在此处输入图片说明

奇怪的是,在maxConcurrentOperationCount = 8的情况下,您可能认为一次最多只能下载8张图像...

这是其他人遇到的问题吗?如果是,如何解决? 可以以某种方式配置AFNetworking以免发生这种情况吗?

谢谢。

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

[[requestOperationManager operationQueue] setMaxConcurrentOperationCount:5];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM