这两行占我应用程序整个加载时间的40%和42%(合84%)。我用 Instruments 测试了它。
NSData *storeImageData = [NSData dataWithContentsOfURL:storeImageURL]; //40% whole load time
UIImage *storeImage = [UIImage imageWithData:storeImageData]; //42% whole load time
是否有其他/更好的方法可以加快我的应用的加载时间?这两行和更多的代码都在一个循环中,将循环大约500次。
注意
将“http://”添加到通常的“www.blah.net”后,它开始变慢。有谁知道为什么URL中的7个字符(大约30-50个)会减慢加载时间,从而大大降低。在我改变之前,花了3秒钟。现在37秒。
答案 0 :(得分:4)
用这些替换你的行,
__block NSData *storeImageData;
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, NULL);
dispatch_async(queue, ^{
//load url image into NSData
storeImageData = [NSData dataWithContentsOfURL:storeImageURL];
dispatch_sync(dispatch_get_main_queue(), ^{
//convert data into image after completion
UIImage *storeImage = [UIImage imageWithData:storeImageData];
//do what you want to do with your image
});
});
dispatch_release(queue);
有关详细信息,请参阅dispatch_queue_t