美文网首页
Instruments之Core Animation

Instruments之Core Animation

作者: 骑着雅迪小毛驴上班的老瞿 | 来源:发表于2017-12-08 11:56 被阅读0次

    Instruments是Xcode套件中没有被充分利用的一个工具。很多iOS开发者从没用过Instruments,或者只是用Leaks工具检测循环引用。实际上有很多Instruments工具,包括为动画性能调优的东西。

    你可以通过在菜单中选择Profile选项来打开Instruments(在这之前,记住要把目标设置成iOS设备,而不是模拟器)。然后将会显示出图1(如果没有看到所有选项,你可能设置成了模拟器选项)

    1.Core Animation工具用来监测Core Animation性能。它给我们提供了周期性的FPS,并且考虑到了发生在程序之外的动画


    image.png

    Core Animation工具也提供了一系列复选框选项来帮助调试渲染瓶颈:

    Color Blended Layer -这个选项基于渲染程度对屏幕中的混合区域进行绿到红的高亮(也就是多个半透明图层的叠加)。由于重绘原因,混合对GPU性能会有影响,同时也是滑动或者是动画帧率下降的罪魁祸首之一。

    ColorHitsGreenandMissesRed -当使用 shouldRasterizep 属性的时候,耗时的图层绘制会被缓存,然后当做一个简单的扁平图片呈现。当缓存再生的时候这个选项就用红色栅格化图层进行了高亮。如果缓存频繁再生,就意味着栅格化可能会有负面的性能影响了。

    Color Copied Images -有时候寄宿图片的生成意味着Core Animation被强制生成一些图片,然后发送到渲染服务器,而不是简单的指向原始指针。这些选项把这些图片渲染成蓝色。复制图片对内存和CPU来说是一项非常昂贵的操作,所以应该尽可能的避免。

    Color Immediately -通常Core Animation Instuments 以每毫秒10次的频率更新图层调试颜色。对某些效果来说,这显然太慢啦。这个选项就可以用来设置每帧都更新(可能会影响到渲染性能,而且会导致帧率测试不准,所以不要一直都设置它)。

    Color Misaligned Images -这里会高亮那些被缩放或者拉伸以及没有正确对齐到像素边缘的图片(也就是非整齐坐标)。这些中的大多数通常都会导致图片的不正常缩放,如果把一张大图当缩略图显示,或者是不正确的模糊图像,那么这个选项会帮你识别出问题所在。

    Color Offscreen-Rendered Yellow -这里会把那些需要离屏渲染的图层高亮成黄色。这些图层很可能需要用 shadowPath 或者 shouldRasterize 来优化。

    Color OpenGL Fast Path Blue -这个选项会对任何直接使用OpenGL绘制的图层进行高亮。如果仅仅使用UIKit或者Core Animation的API,那么不会有任何效果。如果使用`GLKView`或者`CAEAGLLayer `,那如果不显示蓝色块的话就意味着你正在强制CPU渲染额外的纹理,而不是绘制到屏幕。

    Flash Updated Regions - 这个选项会对重绘的内容高亮成黄色(也就是任何在软件层面使用Core Graphics绘制的图层)。这种绘图的速度很慢。如果频繁发生这种情况的话,这意味着有一个隐藏的bug或者说通过增加缓存或者使用替代方案会有提升性能的空间。

    http://www.jianshu.com/p/b03bc9a06ca8

    相关文章

      网友评论

          本文标题:Instruments之Core Animation

          本文链接:https://www.haomeiwen.com/subject/sfkeixtx.html