UIImage: imageWithContentsOfFile в iOS 5.0 в 10 раз медленнее

После простой перекомпиляции нашего iPhone-приложения на недавно выпущенном iOS 5.0 SDK я столкнулся со странной проблемой - все UIImage: imageNamed (первый вызов с фактической загрузкой изображения) и UIImage: imageWithContentsOfFile начали работать в 10 раз медленнее, чем раньше. Мне удалось сузить проблему: это касается только файлов jpeg и png (не gif!), и это не из-за размера файла. даже простая загрузка небольших 32 * 32 png занимает около 300 мс ... по сравнению с 30 мс на старых устройствах (проверено на 3.1 и 4.3.5 с тем же кодом)

Я также пытался загрузить изображение через недавно представленный CIImage с этим code

WLLog(@"Data loading...");
NSData *imageData = [NSData dataWithContentsOfFile:path];
WLLog(@"CIImage creation...");
CIImage* cii = [CIImage imageWithData:imageData];
WLLog(@"CIImage creation ok...");
float scle = 1.0;
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 40000
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
    scle = [[UIScreen mainScreen] scale];
}
#endif
CIContext *context = [CIContext contextWithOptions:nil];
UIImage* res5 = [[UIImage alloc] init];
WLLog(@"UIImage creation...");
[res5 initWithCGImage:[context createCGImage:cii fromRect:cii.extent] scale:scle orientation:UIImageOrientationUp];
WLLog(@"Done!");

безуспешно ... эта единственная строка

CIImage* cii = [CIImage imageWithData:imageData];

занимает те же 300 мс даже на маленьких изображениях (4 Кб png). имхо, просто разбирать вообще нечего!

Что может исправить такое странное изменение времени загрузки? На данный момент похоже, что что-то радикально изменилось во внутреннем устройстве sdk: (

7
задан IPv6 31 October 2011 в 15:22
поделиться