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/