Всплеск памяти CFNetwork при получении изображения

Я профилирую свое приложение в Instruments и обнаружил тревожное количество выделений CFNetwork, когда использую AFNetworking для извлечения удаленного изображения.

В одном случае я увидел 89 МБ выделенного пространства (размер изображения составляет всего около 200 КБ). Я приложил скриншот для демонстрации. Кто-нибудь еще замечал это раньше? Память освобождается соответствующим образом, но я не могу понять, почему это происходит в первую очередь.

Профиль

Заранее спасибо.


person Ricky    schedule 20.10.2014    source источник
comment
Я должен добавить, что я просматриваю только все распределения кучи, а не всю кучу и анонимную виртуальную машину.   -  person Ricky    schedule 20.10.2014
comment
Вы нашли какой-либо обходной путь или какой-либо шанс исправить это увеличение памяти? Я столкнулся с той же проблемой.   -  person Kumar Aditya    schedule 29.05.2015
comment
Нет, @Rudeboy, просто смирился с этим.   -  person Ricky    schedule 01.06.2015
comment
просто проверьте это на iOS 8.3, кажется, это исправлено.   -  person Kumar Aditya    schedule 01.06.2015
comment
Вы правы, кажется, это было исправлено. Спасибо за внимание!   -  person Ricky    schedule 02.06.2015


Ответы (1)


Я вижу ту же проблему ТОЛЬКО на iOS 8. Этого не происходит ни на одной версии iOS 7. На симуляторе 132 КБ, на устройстве 144 КБ.

Кажется, это связано с этой проблемой:

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

В этом примере я выполняю http get с помощью nsurlsession. Если вы нажмете место, которое не отправляет подтверждение активности, например, google.com, это не приведет к распределению этих 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];

инструменты

person Tian Han    schedule 31.10.2014