仪器分析:"顶级功能"重新排序功能

All*_*der 3 profiling instruments

我通过更改OpenGL代码优化了函数Render().然后我运行仪器/ 时间配置文件,时间限制为180秒(因此测量准确完成).

  1. 打开反向调用树:
    • 非优化的680毫秒,
    • 500 ms用于优化.
  2. 关闭反转调用树:
    • 非优化的277毫秒,
    • 优化345毫秒.
  3. 打开顶部功能(仍然关闭反向调用树):
    • 非优化的4591 ms,
    • 5277毫秒优化.
  4. 打开" 反转调用树"(仍然打开" 顶级函数"):
    • 没有变化(4591),
    • 没有变化(5277).

怎么解释这个?优化版本更快还是更慢?

Mar*_*zyk 7

Time Profiler结果取决于您运行的Xcode版本.如果您运行的是Xcode 4.4或更高版本,则Time Profiler仪器在调用树中为每个符号分配两列:运行时间和自我.Self列更重要,因为它告诉您函数在调用堆栈顶部的时间量.所有运行时间列都告诉您函数在调用堆栈上的时间长度,这实际上并不意味着位于堆栈顶部.

要查看您的应用在Render()中花费了多少时间,请取消选中"反转调用树"复选框,然后查看"渲染()的自我"列.如果这是您正在分析的游戏,那么可以帮助双击调用树中的游戏循环功能.双击游戏循环功能将打开源视图,该视图将告诉您游戏循环在Render()函数中花费的时间百分比.

Time Profiler工具不是分析OpenGL代码的最佳工具.如果您正在编写Mac应用程序,OpenGL Profiler工具会比Instruments更好地配置OpenGL代码.仪器还具有用于测量OpenGL统计数据的OpenGL驱动程序仪器.如果您要分析iOS应用程序,请使用OpenGL ES分析工具模板和OpenGL ES性能检测工具.