簡體   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