最新版 android adt 中包含了opengles trace 选项。高通提供了一个adreno gpu上的性能分析工具,可以直接分析android / PC上opengles应用程序的性能。
1. opengles trace
1.1 版本要求
1)Android adt : adt-bundle-windows-x86-201302192)Android NDK : android-ndk-r8d:r8d 改正了ndk增量编译问题。
3) >= Android 4.1 ( API Level 17 )
1.2 生成gltrace 文件
window / show view / other / 打开opengles trace视图并单击进入,右上角显示如图:
如下图单击v型按钮:
配置gltrace,关联activity,设置gltrace文件保存目录:
gltrace进度对话框:
1.3 分析gltrace文件
2. AdrenoProfiler(v3.0.1)
tools目录下。
实验
软件具体使用看帮助文档,
1. 打开手机上opengles开发的应用程序
2. 打开软件,点击connect
3. new 一个 grapher页面,然后在右边树状列表中双击打开相应视图,常用的是Grapher Metrics 下的EGL / FPS和GPU General / Busy
实测:
数据量:
03-01 15:46:29.482: I/VBO(10518): position size = 1458000
03-01 15:46:29.482: I/VBO(10518): normal size = 1458000
03-01 15:46:29.482: I/VBO(10518): texture size = 972000
HTC G10上实测,当顶点、法线、纹理数据量均在1M左右时 vertex array和vbo才能有明显区别。
如上图,采用VBO绘制,FPS在50左右,GPU Busy在100%左右;当切换到vertex array时fps在30左右,GPU Busy在80%左右。