• ios 性能优化之图形性能测试


    在你的iOS设备测量图形性能

    来源:http://www.cnblogs.com/chensheng12330/p/3947573.html

    广泛使用的图形应用程序可以让你的应用程序从你的竞争对手脱颖而出。 但是除非你负责任地使用图形资源,应用程序会慢下来,看起来平庸的无论多么好你想呈现的图像。

    使用三个跟踪模板中发现iOS图形部分,概要文件应用程序。确保帧速率足够高,你的图像不阻碍你的应用程序的性能。

    测量核心动画图形性能

    仪器使用核心动画仪器测量你的iOS设备上的应用程序的图形性能。 核心动画跟踪模板提供快速、轻量级的选择测量每秒的帧数呈现应用程序。该仪器并不是用来测量OpenGL ES的性能。 你可以很快看到你的应用程序框架呈现少于预期。 通过关联时你正在做什么样本,您可以识别你的代码,需要改进。

    把你与应用程序的交互和结果显示在工具。 在 图是个 ,你可以看到的帧速率峰值应用变得明显更好。 不知道发生了什么事与设备在这些峰值,这将是自然为你想复制这些更高的帧速率在整个应用。然而,这些峰值是由于取向变化当设备之间改变景观和正常的取向。 不知道,一个方向变化的设备进行,你可能会花时间试图找到什么导致了性能提升。

    图是个 核心动画显示帧率峰值跟踪模板

    核心动画在细节窗格中包含几个有用的调试选项。 你不需要运行一个跟踪为了看到这些选项你的iOS设备上工作。 从目标弹出菜单选择正在运行的进程。

    • 颜色混合层。 显示了混合视图层。 多个视图层相互吸引的启用了混合以红色突出显示。 减少红色的在你的应用程序选择这个选项可以显著提高应用程序性能。 混合视图层往往是缓慢的原因表滚动。

    • 颜色热门作品绿色和红色。 标志着绿色或红色的观点。 认为可以使用缓存的光栅化在绿色标记。

    • 颜色复制图像。 以蓝色显示图像复制的核心动画。

    • 立即颜色。 当选择,删除执行color-flush操作时10毫秒的延迟。

    • 颜色偏差的图像。 地方洋红叠加在图像源像素不一致到目标像素。

    • 颜色Offscreen-Rendered黄色。 地方一个黄色覆盖在私生活方面呈现的内容。

    • 颜色OpenGL快速路径蓝色。 地方一个蓝色覆盖在内容脱离排字工人。

    • Flash更新区域。 你的iOS设备上颜色的地区在黄色区域是更新的图形处理器。

    测量与OpenGL ES OpenGL活动分析跟踪模板

    OpenGL ES分析模板措施和分析OpenGL ES活动为了检测OpenGL ES正确性和性能问题。 它还提供了你推荐的解决发现的问题。 它包括OpenGL 分析仪和OpenGL ES分析仪器。

    bullet
    让OpenGL ES分析仪应用提出建议
    1. 打开OpenGL ES iOS组分析模板。

    2. 单击弹出选择目标并选择你的iOS设备。

    3. 第二次单击弹出选择目标并选择你想要的应用分析。

    4. 点击录音按钮开始录制数据,锻炼你的OpenGL图形代码。

    5. 时,点击停止按钮停止在细节窗格中积累的问题。

      ../Art/OpenGL ES Analizer suggestion.png

    错误细节窗格中列出,显示总出现,独特的事件,类别,总结,和(最左边)严重性代码,要么是最严重的红场,或一个橙色三角形那么严重。 当选择一个错误扩展细节窗格中提供的建议是关于如何解决发现的问题。

    发现瓶颈与OpenGL ES司机跟踪模板

    OpenGL ES司机跟踪模板也是用来测量应用程序的性能和为您提供更多的信息不仅仅是每秒的帧数,你的应用程序呈现。 扩展的细节窗格中显示所有收集的信息为一个特定的示例。 每个统计也可以显示在跟踪OpenGL ES驱动显示面板通过配置特定的统计。 关于提供的统计数据的详细信息,请参阅 OpenGL ES司机仪器  仪器用户参考 

    图以 对于核心动画示例的详细信息

    瓶颈的OpenGL应用程序通常有两种形式,一个GPU瓶颈或CPU瓶颈。 GPU瓶颈发生在GPU部队CPU等待信息多的信息来处理。 CPU瓶颈通常发生在GPU从CPU等信息才能处理它。 CPU瓶颈通常可以通过改变底层应用程序的逻辑来创建一个更好的GPU的信息流动。 下面显示的瓶颈和常见的症状列表的瓶颈:

    • 几何限制。 是否镶面利用率高。 如果是,那么顶点着色程序流程。

    • 像素有限。 是否呈现利用率高。 如果是,那么片段着色器流程。

    • CPU限制。 是否砖瓦匠和呈现的利用率很低。 如果这两个很低,性能瓶颈可能不是在OpenGL代码,你应该看看你的代码的整体逻辑。

  • 相关阅读:
    Scala比较器---Ordered与Ordering
    WebSocket、Socket、TCP、HTTP区别
    WebSocket 是什么原理?为什么可以实现持久连接?
    写扩展性好的代码:函数
    Go语言的类型转换和类型断言
    go jwt OAuth2.0
    User Agent 里的各个字段含义
    前后端分离跨域问题解决方案
    beego + websocket 向页面推送数据
    beego orm关联查询之多对多(m2m)
  • 原文地址:https://www.cnblogs.com/chensheng12330/p/3947573.html
Copyright © 2020-2023  润新知