fps:frames per second,也就是每秒钟显示多少帧画面,fps越高界面越流畅,60左右已经很好了
相关调试选项在Debug->View Debuging->Rendering中,运行在真机上之后方可选择下列选项
发生混合图层会显示为红色,不透明的图层为绿色,绿色的区域越多越好。
避免图层混合:
· 确保backgroundColor和父视图颜色一致且不透明
· 如无特殊需要,不要设置低于1的alpha值
· 确保UIImage没有alpha通道,图片本身不透明
l Color Hits Green and Misses Red
设置viewlayer的shouldRasterize为YES,缓存命中的layer会标注为绿色,反之为红色。会导致离屏渲染,合理使用。
图片的色彩格式不能被GPU直接处理,需要CPU转换,对性能会有一定的影响。
• 确保图片颜色格式被GPU支持,避免CPU转换图片格式。
被缩放的图片会被标记为黄色,像素不对齐则会标注为紫色。
避免图片缩放
• 确保图片大小和frame一致,不要在滑动时缩放图片。
l Color offscreen-rendered yellow
黄色表示哪些layer做了离屏渲染(offscreen-render)。
离屏渲染是指图层在被显示之前是在当前屏幕缓冲区以外开辟的一个缓冲区进行渲染操作。
• 离屏渲染会有缓存影响性能。
• 重写drawRect方法,设置圆角、阴影、模糊效果,光栅化都会导致离屏渲染。
避免离屏渲染
• 设置阴影效果是加上阴影路径。view.layer.shadowPath
• 滑动时若需要圆角效果,开启光栅化,光栅化会导致离屏渲染,但是缓存命中率高(复用率)会提升性能,反之降低性能。适用静态的cell
模拟器运行可选择Color Blended layers、Color copied images、Color misaligned images、Color offscreen-rendered yellow,没有真机选项多