2014-10-20 55 views
4

我在仪器中分析我的应用程序,并且当我使用AFNetworking获取远程图像时,发现了CFNetwork分配令人不安的数量。提取图片时CFNetwork内存峰值

在一个实例中,我看到了89 MB的分配(图像大小仅为200 KB左右)。我附上了一张截图来演示。有没有其他人注意到这一点?内存被适当释放,但我无法理解为什么这首先发生。

Profile

在此先感谢。

+0

我要补充一点,我只是观看“所有堆分配”,而不是“所有的堆和匿名VM” – Ricky 2014-10-20 05:30:46

+0

你找到任何解决办法或任何机会,以解决这个内存增量?我面临同样的问题。 – 2015-05-29 10:59:19

+0

不@Rudeboy,刚刚结束了对它的容忍。 – Ricky 2015-05-31 23:17:16

回答

3

我在iOS 8上看到同样的问题。它不会在任何版本的iOS 7上发生。在模拟器上它的132kb,在一个设备上它的144kb。

这似乎对与此有关的问题:

https://github.com/AFNetworking/AFNetworking/issues/2314

我执行HTTP GET在这个例子中使用nsurlsession。如果你打的地方不发送保持活动,即google.com,它不会malloc那些kb。但是,如果你打到一个发送保持活动的地方,它会。

NSString * url = [NSString stringWithFormat:@"%@%.20f", @"http://someplace.com/?test=", (double)[[NSDate date] timeIntervalSince1970]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]]; 
[request setHTTPMethod:@"GET"]; 
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:nil] resume]; 

instruments