imageNamed: 渲染优化使用

[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);

你可能感兴趣的:(imageNamed: 渲染优化使用)