ios - 什么触发仪器中的 "Color Copied Images"和 "Color Hits Green and Misses Red"?

标签 ios core-animation instruments

Instruments User Guide有这样的话:

  • Color Copied Images. Puts a cyan overlay over images that were copied by Core Animation.

但这并不能解释为什么图像被复制了。从一张复制图像到另一张图像似乎没有明显的模式,尽管它是规则的且可重现的。

文档目前甚至没有提到 Color Hits Green and Misses Red,但我认为这可能与 CALayer 有关shouldRasterize 属性。

有什么想法吗?

最佳答案

对于彩色复印图像”,这在 2014 年 WWDC session 419 中得到了很好的讨论:

“如果图像是 GPU 无法直接处理的颜色格式,它将在 CPU 中进行转换。”

例子: 想象一下从您无法控制格式的在线来源获取图像。 JPEG 支持 24 位彩色图像(每种颜色 8 位)。 TIFF 格式可以存储 48 位彩色图像中的颜色(每种颜色 16 位)。根据 iOS 的需要,这些差异可能需要转换。

解决方案是在后台将它们转换为正确的颜色格式,以防止在主线程上进行这些转换时出现性能问题。

对于“Color Hits Green and Misses Red”,OP 是正确的,它是检查您是否正确使用了“shouldRasterize”属性。绿色表示很好,您重新使用了从“shouldRasterize”属性创建的缓存。红色表示不好,您需要写入缓存(导致屏幕外传递),然后绘制。

关于ios - 什么触发仪器中的 "Color Copied Images"和 "Color Hits Green and Misses Red"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302029/

相关文章:

iphone - 如何从 Storyboard中的事件处理程序跳转到代码

ios - 如何在 iOS 中管理自定义单元格标签值?

cocoa - 图层托管的 NSView 是否允许有 subview ?

ios - iOS 中的隐式动画具体发生在什么时候?

cocoa-touch - 仪器泄漏、引用计数和自动释放

iphone - 定时器不重复

ios - 在AVPlayer上使用periodicObserver跟踪播放进度

swift - CGAffineTransformMakeRotation 和 CGAffineTransformRotate 的区别

ios - UIAutomation 无法点击按键

ios - 分析 iOS Today Widget(仪器)