- Time Profiler:分析代码的执行时间,找出导致程序变慢的原因。
要从xcode的product>profile中打开Instruments才能看到自己代码的运行时间分析 - Allocations:监测内存使用 / 分配情况 迅速膨胀的内存可以很快让程序毙命,所以要多加防范。
- Leaks:找到引发内存泄漏的起点
当你进入一个UIViewController页面并返回的时候发现内存一直在增加,那可能会发生了内存泄
露,可以试试看UIViewController的dealloc有没有运行,如果没运行可能就是发生了内存泄露。
以上三点iOS 性能优化:Instruments 工具的救命三招有不错的介绍,还有例子比较容易懂。
- Core Animation: 通过联调真机,可以观察到运行时每秒绘制了多少帧(60帧封顶):
1.选中Color Blended Layers, 可以得到界面的红绿分布,其中红色的为透明部分,红色部分越多对性能影响越大。
2.监测离屏渲染:
- Color Offscreen-Rendered Yellow
开启后会把那些需要离屏渲染的图层高亮成黄色,这就意味着黄色图层可能存在性能问题。
- Color Hits Green and Misses Red
如果shouldRasterize被设置成YES,对应的渲染结果会被缓存,如果图层是绿色,就表示这些缓存被复用;如果是红色就表示缓存会被重复创建,这就表示该处存在性能问题了。
- GPU Driver 监测GPU的消耗
Renderer Utilization
如果这个值超过了~50%,就意味着你的动画可能对帧率有所限制,很可能因为离屏渲染或者是重绘导致的过度混合。
Tiler Utilization
如果这个值超过了~50%,就意味着你的动画可能限制于几何结构方面,也就是在屏幕上有太多的图层占用了。