首先,我不确定这是 AFNetworking 问题还是 CFNetwork。
我在下载数千张图像的 iOS 应用程序中使用 AFNetworking。这是通过 NSMutableURLRequest、AFHTTPRequestOperation(带有 AFHTTPResponseSerializer)、NSOperationQueue(NSOperationQueue 上的 maxConcurrentOperationCount 设置为 8 btw)实现的。
我看到的是,当这些图像从服务器下载时,我的应用程序的内存占用显着增加。使用 Instruments 中的分配 (XCode5),看起来很多内存都流向了 CFNetwork 中 HTTPProtocol::bytesAvailable 中的 CFData。
虽然我对CFNetwork一无所知,但我只是推测在下载图像时,一些CFData没有被释放,这导致大量内存的临时积累。
为了清楚起见,这个内存最终会在某个地方以某种方式释放,因为我看到 Instruments 中的内存占用量在一段时间后会下降,但我担心的是图像下载时发生了什么。
奇怪的是,在 maxConcurrentOperationCount=8 的情况下,你会认为一次下载的图像不超过 8 个......
这是其他人遇到的问题吗?如果是,如何解决?可以以某种方式配置 AFNetworking,以免发生这种情况吗?
谢谢。