Adreno GPU Profiler工具使用总结
Adreno Profiler介绍
Adreno Profiler 是高通公司开发的一款针对运行在高通骁龙处理器上用于图形和GPGPU技术应用的性能分析和帧调试工具。工具本质上是一个OpenGL ES Draw Call Replay,此要求PC端也必须支持手机端设备的 OpenGL ES 所有特征。由于这个工具是高通提供的,所以只能运行在高通芯片的安卓机上。
Adreno Profiler连接方式
1、adb连接:可以直接下载一个Android SDK,platform-tools下有个adb.exe执行程序,配置好环境变量。
2、ip连接:PC开设一个共享wifi,手机连接这个wifi,用wifi显示的ip地址进行连接。
Adreno Profiler性能测试
- 监测实时的GPU性能
- 捕获一帧,然后依照API的调用依次调试
- 分析每一次调用Draw 函数的性能
- 查看texture、programe、shader和其他的资源
- 查看shader统计(vertex shader/ fragment shader/shader busy)
Adreno Profiler基本步骤
1、连接前提:高通芯片手机一部,所运行的app支持相关Android网络权限。在电脑打开Adreno Profiler,点左上角的Connect。
连接方式:手机插到电脑上使用adb连接,或者在同一局域网内使用IP连接。准备好之后点击Refresh,直至刷出对应的设备和应用。
双击出现的设备和应用进入连接。

2、点击Scrubber GL弹出抓取界面,然后点击Capture Frame抓取某一帧画面,等待一段时间即可。等待阶段切勿重复抓取,可能会导致卡死现象。第一次抓取可能会没有数据,可以再抓取一次试试。
tips:抓取完成之后,可以点击上方的Save将帧数据保存成apr文件,这样可以之后Open,省的每次分析都需要连接手机、打开游戏。

3、在上图中,可以看到“Render Calls”一栏,其实是抓取了一帧中所有GL部分的调用及相关数据,然后按照绘制命令组织。当选中不同的Render Call时,工具会显示从一开始到这一个命令的绘制结果,方便看到每一个中间过程。此外,在API Calls中,还可以看到每一个Render Call之前的其他命令,包括各种对GL状态机的修改,具体的顶点信息也能看到。


4、如果想看其他数据项,在Capture Frame之前,点击Metrics选项开启需要观察的数据项。如果想对shader进行性能分析,可以开启Vertices Shaded和Fragment Shaded,抓帧之后能看到对应顶点shader和片段shader数据了,主要观察Fragment Shaded,一般对Fragment Shaded数据参考标准是70W个。

5、就纹理来说,在右边可以看到所有显存里的纹理资源,点开可以看到具体的纹理参数和缩略图。在上面有一个小的按钮,可以将所有纹理都保存成一个个文件,可以开启minimaps view查看纹理图。

6、就Shader来说,同样也是可以看到所有Program,工具还会贴心的标出所有利用了该Shader的Render Call,下面可以看到反汇编出来的指令:
tips:有些机型能测试的机型不一定能看到反汇编出shader指令,也可能和Android版本有关,多用几台机型测试。

7、就模型来说,选中一个Render Call然后Save Vertex Data就可以导出Obj了,但是生成的文件还需要修改下才能导入,主要是修改命名,具体打开看看obj文件长啥样的。
具体学习可以参考 obj文件格式详解

8、Adreno Profiler 提供了实时的GPU的监控, 其中提供了大量的监测点,可以实时的查看GPU的情况, 点击菜单栏中的”Grapher“,有两个子菜单”App metrics Graph“和”Global metrics Graph“,并不是所有的手机支持后者,且在使用IP连接的时候,后者也是无法使用的。选中"App Metrics Graph", 查看GPU的实时数据。
tips:如果打开没有数据曲线,可以从右边把相应的想观察的数据项拖进来。


总结:Adreno Profiler提供了一些很方便的可视化功能,譬如选中一个纹理或者Shader,可以标记出所有使用该资源的Render Call,选中Render Call的时候会在屏幕上标记其绘制效果,总之很方便的工具一只。
Adreno GPU Profiler工具使用总结的更多相关文章
- Adreno GPU Profiler
Adreno GPU Profiler,除了UNITY profiler外的一个备选,似乎不能看CPU,内存?
- SQL Server Profiler工具
一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...
- SQL Profiler工具简介
一.SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询: 在后台收集查询信息: 分析性能: 诊断像死锁之类的问 ...
- 利用profiler工具提高NC-Verilog仿真效率
大家进行芯片验证时,一般都会遇到仿真速度很慢.效率不高的问题.目前发现了一个方法可以debug上述问题.即,利用NC的profiler工具. 关于profiler工具,我把文档<Cadence® ...
- SQL Server Profiler工具【转】
一.SQL Profiler工具简介 转自:http://www.cnblogs.com/kissdodog/p/3398523.html SQL Profiler是一个图形界面和一组系统存储过程,其 ...
- C++ Profiler工具之初体验
http://www.cnblogs.com/likwo/archive/2012/12/20/2826988.html 转 http://www.cnblogs.com/lenolix/archiv ...
- 【经验】使用Profiler工具分析内存占用情况
Unity3D为我们提供了一个强大的性能分析工具Profiler.今天我们就使用Profiler来具体分析一下官方样例AngryBots的内存使用信息数据. 首先打开Profiler选择Memory选 ...
- 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
一.前言 最近一段时间,网站经常出现两个问题: 1.内存占用率一点点增高,直到将服务器内存占满. 2.访问某个页面时,页面响应过慢,CPU居高不下. 初步判断内存一点点增多可能是因为有未释放的资源一直 ...
- 转:检查c#代码内存泄露工具-CLR Profiler工具使用
大家都知道.net有一套自己的内存(垃圾)回收机制,除非有一些数据(方法)长期占有内存不随着垃圾回收功能而释放内存,这样就造成了我们经常说的内存泄露.内存持续增长得不到释放等问题导致APS.NET网站 ...
随机推荐
- python3 ,AttributeError: module 'tensorflow' has no attribute 'merge_summary'
error:tensorflow有些方法属性被改了, self.summary_writer = tf.train.SummaryWriter(summary_dir)改为:summary.FileW ...
- Alpha发布——美工+文案展示博客
此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2283 文案: 学海无涯苦作舟,深海的远帆扬起成长的新程. 我将一滴水滴注 ...
- Mininet介绍及安装
什么是Mininet Mininet是由一些虚拟的终端节点(end-hosts).交换机.路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美. Mininet可以很方 ...
- 线段树---poj3468 A Simple Problem with Integers:成段增减:区间求和
poj3468 A Simple Problem with Integers 题意:O(-1) 思路:O(-1) 线段树功能:update:成段增减 query:区间求和 Sample Input 1 ...
- mvc4 找到多个与名为“xx”的控制器匹配的类型
asp.net mvc4 添加分区出现错误 找到多个与名为“home”的控制器匹配的类型 会出现如下错误”找到多个与名为“home”的控制器匹配的类型“ 在RouteConfig文件中添加命名空间可解 ...
- iOS- Swift和Object-C的混合编程
1.前言 事实证明,在短时间内Swift还取代不了Object-C, 而且.... Apple Swift 开发小组的人说的:「We'll recommend people start with ...
- 对IT行业的看法和对软件工程的理解
现在社会上IT行业的人才需求越来越大,而作为一个学软件工程的大学生,我认为IT行业是一个前景十分强大的发展方向,而且现在的社会越来越信息化,未来的生活中,电脑肯定是不可缺少的,所以我认为IT行业这是一 ...
- Ubuntu 16.04出现:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/
转自:http://blog.csdn.net/zzq123686/article/details/77454066 出现错误信息: Reading package lists... Done E: ...
- 使用ASP.NET Identity 实现WebAPI接口的Oauth身份验证
使用ASP.NET Identity 实现WebAPI接口的Oauth身份验证 目前WEB 前后端分离的开发模式比较流行,之前做过的几个小项目也都是前后分离的模式,后端使用asp.net weba ...
- 关于command 'gcc' failed with exit status 1 解决方法
Python踩坑之路 Setup script exited with error: command 'gcc' failed with exit status 1 由于没有正确安装Python开发环 ...