Instruments
1.唤醒Instruments
:记住要使用iOS真机测试
Product
菜单 -> Profile
选项
2.我们通常对Instruments的某些工具感兴趣:
Time Profile
:测量CPU用法Core Animation
:调试各种类型的Core Animation性能问题GPU Driver
:调试GPU性能问题
3.Time Profile
在右下角的面板中设置Separate by Thread
、Hide System Libraries
,有助于分析
##Efficient Drawing
iOS的绘图主要是使用Core Graphics
框架,尽管有时使用该框架是必要的,但是与Core Animation
与OpenGL
执行的硬件加速渲染与合成相比,它显得比较慢。
只要实现-drawLayer:inContext:
方法或-drawRect:
方法,offscreen
绘图上下文就会被创建。
Core Animation
在硬件的帮助下,提供了专门的类来绘制各种类型的形状。可以使用CAShapeLayer
绘制多边形、直线与曲线,可以使用CATextLayer
来绘制文本,使用CAShapeLayer
绘制渐变效果。这些都要比使用Core Graphics
快。
Dirty Rectangles
:为了避免不必要的绘制,Mac OS和iOS将屏幕分为需要重绘与不需要重绘的区域。需要重绘的区域叫做dirty
区域。setNeedsDisplayInRect:
异步绘图Asynchronous Drawing
:UIKit单线程特性意味着backing images必须在主线程上更新。Core Animation提供了解决方案:CATiledLayer
与drawsAsynchronously
属性。