- (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在首次渲染时要慢很多倍所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)