CoreAnimation和OpenGL ES驱动程序仪器之间的区别 - iPhone

时间:2011-04-11 11:16:45

标签: iphone objective-c performance instruments

我正在尝试使用CoreAnimation和OpenGL ES驱动程序仪器对我的新应用程序进行一些性能测试。这两个工具都给我相同的信息。所以,我对每个工具的目的感到困惑。我的应用程序只是一个普通的应用程序,它不是游戏,我不使用任何openGL代码。在我的应用程序上运行OpenGL ES Driver Instrument是否有意义?

我从Apple page了解OpenGL ES DriverOpenGL ES Driver工具查询iOS设备上的GPU驱动程序,以便为单个进程采样OpenGL统计信息。该仪器可帮助您确定在设备上使用OpenGL和GPU的效率。

Apple页面还指出OpenGL ES Driver会给我很多信息,但我看不到任何信息: Context Count, Command Buffer Allocated Bytes, Command Buffer Submitted Bytes, Command Buffer Submit Count, Command Buffer Render Count

2 个答案:

答案 0 :(得分:4)

要回答第二个问题,您可以通过单击仪器右侧的小i按钮,然后选择Configure,在OpenGL ES驱动程序仪器中启用其他统计信息的跟踪。弹出窗口中的按钮。您将看到一个可以启用跟踪的统计信息列表。

选择要监控的项目后,单击Done,您将返回原始弹出窗口。在其中,通过单击相应的复选框,启用您希望在图表和表格中显示的确切统计信息。

在下一次登录过程中,将监视这些附加项目。这可以帮助您调试OpenGL性能问题,例如填充率或几何限制,但我还没有用它来分析Core Animation。您可以在核心动画工具(颜色混合图层,颜色未对齐图像等)中启用的整洁工具往往更好。

答案 1 :(得分:3)

Core Animation是一个在iPhone上使用OpenGL ES的更高级别的框架。因此,使用Core Animation的应用程序间接使用OpenGL ES。 OpenGL ES Driver工具可能会告诉您有关Core Animation如何在iPhone上使用GPU的一些有趣信息。然而,这些信息可能无法采取行动。直接优化OpenGL代码需要改变Apple的代码。

所以直接回答你的问题:不,在不包含你自己的OpenGL代码的应用程序上运行OpenGL ES Driver Instrument没有任何意义。