ios – Core Image在首次渲染时要慢很多倍

ios – Core Image在首次渲染时要慢很多倍,第1张

概述我找不到Apple的任何文档来解释为什么这段代码以不同的速度运行,具体取决于它运行的次数. - (void)speedTest2:(CIImage*)source { NSTimeInterval start = CFAbsoluteTimeGetCurrent(); CIFilter* filter = [CIFilter filterWithName:@"CIColorInv 我找不到Apple的任何文档来解释为什么这段代码以不同的速度运行,具体取决于它运行的次数.

- (voID)speedTest2:(CIImage*)source {    NSTimeInterval start = CFabsoluteTimeGetCurrent();    CIFilter* filter = [CIFilter filterWithname:@"CIcolorInvert"];    [filter setValue:source forKey:kCIInputimageKey];    CGImageRef cgImage = [_context createCGImage:filter.outputimage fromrect:source.extent];    UIImage* output = [UIImage imageWithCGImage:cgImage];    if (cgImage)        CFRelease(cgImage);    _source.image = output;    NSLog(@"time: %0.3fms",1000.0f * (CFabsoluteTimeGetCurrent() - start));}

运行时间

>全新的app安装 – 首次调用方法= 206ms
>应用程序重启 – 首次调用方法= 61ms
>第二次调用方法(第3,第4,……)= 14ms

每次运行都使用相同的源图像.

我知道Core Image连接过滤器链.这是以某种方式被缓存?我是否可以预先缓存此 *** 作,以便用户在首次启动应用时不会遇到性能问题?

这个让我发疯:(

解决方法 开销的一部分可以是图像库本身加载.如果效果实现为像素着色器,则可能会在幕后进行编译步骤.

这种隐藏的成本是不可避免的,但您可以选择在更方便的时间进行.例如,在加载应用程序时.

我建议加载一个小图像(1×1像素)并在加载过程中对它应用一些效果,看它是否有帮助.

您可能还想尝试Apple官方论坛以获得回复.

总结

以上是内存溢出为你收集整理的ios – Core Image在首次渲染时要慢很多倍全部内容,希望文章能够帮你解决ios – Core Image在首次渲染时要慢很多倍所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1052518.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存