[UIImage imageNamed:@"xxx"]
在平时的使用中很常见。如设置某些图标,底部Icon或者底部可见视图。
但是由于 imageNamed:
自身的渲染问题,导致产生了加载时间的延长问题。虽然时间只是 ms
级别的,但是在某些情况下或者某种程度上也是会App性能产生影响的。
相对于直接使用 imageNamed:
加载图片而言使用下面的方法加载图片将会更加的节省效能。
// 使用线程加载/自动释放池 用法
dispatch_async(dispatch_get_global_queue(0, 0), ^{
@autoreleasepool{
[[UIImage imageNamed:@"订"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
}
});
还有一点是对于相应的图片或者Icon是放在 工程目录中
还是放在 Assets.xcassetts
中。
在图片加载时间性能上来说,应该放在 Assets.xcassets
中 。可能是放在系统自动生成的Assets.xcassets目录中系统会自动为资源做出缓存,以便更加高效的加载。
对于处理某些功能性代码的耗时情况的查看可以使用 Xcode ==> instruments ==> Time Profiler
或者使用下面的系统获取时间判断也可
// 直接使用 `CFAbsoluteTime` 获取当前时间
CFAbsoluteTime startTime = CFAbsoluteTimeGetCurrent();
// 经过时间
CFAbsoluteTime linkTime = (CFAbsoluteTimeGetCurrent() - startTime);
NSLog(@"log--输出time:%f ms",linkTime*1000);
网友评论