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

时间:2012-09-15 23:28:18

标签: profiling instruments

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

  1. 开启反转呼叫树
    • 680 ms 表示非优化
    • 500毫秒进行优化。
  2. 关闭反转呼叫树
    • 277 ms 表示非优化,
    • 345 ms 进行优化。
  3. 开启热门功能(仍然关闭反向呼叫树):
    • 4591 ms 表示非优化,
    • 5277毫秒进行优化。
  4. 开启反向调用树(仍然打开顶级功能):
    • 没有变化(4591),
    • 没有变化(5277)。
  5. 如何解释这个?优化版本更快还是更慢?

1 个答案:

答案 0 :(得分: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性能检测工具。