Apple的核心图像编程指南,在" Getting the Best Performance"说
使用GPU上下文渲染CIImage对象时,请避免使用Core Animation动画。
如果您需要同时使用两者,可以将两者设置为使用CPU。
任何人都可以解释这个陈述吗?为什么在CPU上运行Core Animation和Core Image而不是使用GPU会更高效?
如何设置Core Animation在CPU上运行?
答案 0 :(得分:1)
我有同样的问题并且遇到了WWDC 2013会议509评论,http://asciiwwdc.com/2013/sessions/509:
“并且还要注意Core Animation和Core Image都广泛使用GPU。
因此,如果您希望Core Animations顺畅,您可能要错开Core Image操作或使用CPU CIContext,这样他们就不会同时对GPU施加压力。“
答案 1 :(得分:0)
我猜他们不能同时在GPU上工作,因为他们在GPU上渲染时都在主线程上运行,这会导致不可预测的问题和性能开销,至于为什么他们都应该使用CPU,应该保持'同时'
由于核心图形绘制在CPU上,您可以在drawRect中绘制动画并定期调用setNeesDisplay以在CPU上执行动画。