CALayer的大部分属性都是通过GPU来绘制的。以下几类操作可能导致layer绘制的性能问题:

  1. 过多的几何形状:这里的瓶颈主要是在对layer的预处理及通过IPC发送到render server这个过程,即CPU的处理,而不是GPU的绘制;
  2. 过多的重绘(overdraw):这主要是由绘制重叠的半透明层引起的;
  3. 离屏渲染:这个应该比较熟悉,诸如layer的圆角绘制、mask、阴影等操作都会导致离屏渲染,主要是因为需要为离屏绘制的图片分配额外的内存并在绘制上下文之间切换;
  4. 过大的图片:如果图片大小超过GPU所支持的最大纹理大小,则在绘制前CPU需要去做预处理。

参考

iOS Core Animation Advanced Techniques