android上opengl性能分析工具

最新版 android adt 中包含了opengles trace 选项。高通提供了一个adreno gpu上的性能分析工具,可以直接分析android / PC上opengles应用程序的性能。

1. opengles trace

1.1 版本要求

1)Android adt : adt-bundle-windows-x86-20130219
2)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文件

打开trace视图效果如下图,实测了ndk自带的SanAngeles例子程序:


refer URL: http://developer.android.com/tools/help/gltracer.html

2. AdrenoProfiler(v3.0.1)

refer URL:https://developer.qualcomm.com/mobile-development/mobile-technologies/gaming-graphics-optimization-adreno/tools-and-resources

tools目录下。

实验

软件具体使用看帮助文档,

1. 打开手机上opengles开发的应用程序

2. 打开软件,点击connect

3. new 一个 grapher页面,然后在右边树状列表中双击打开相应视图,常用的是Grapher Metrics 下的EGL / FPSGPU 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%左右。

你可能感兴趣的:(OpenGL,移动开发,C++,OpenGL技术专栏)