GraphicsProfiler 使用教程
- 1.工具简介:
- 2.Navigation介绍
- 2.1.打开安装好的Graphics Profiler。
- 2.2.将手机连接到计算机,软件会在手机中安装一个GraphicsProfiler应用(该应用是无界面的)。
- 2.3.Show files list
- 2.4.Record new trace
- 2.4.1.Application to profile:是选择抓取的具体进程比如,System tracing和相机;
- 2.4.2 Recording mode(有三种模式可选)
- 2.4.3 Probes
- 2.4.3.1.CPU有三个选项
- 2.4.3.2.GPU有二个选项
- 2.4.3.3.Battery有二个选项
- 2.4.3.4.Memory有六个选项
- 2.4.3.5.Applications 有三个选项
- 2.4.4 Advanced-->Recording config
- 3.点击“Start Recording”按钮抓取trace文件
- 4.Current Trace(了解内容)
- 4.1.抓取的trace文件名
- 4.2.Show timeline,通过时间线的形式展示抓取的trace内容
- 4.3.Query(SQL),使用SQL语句检索trace中的内容
- 4.4.Info and stats,手机中的系统信息和package列表
- 5.Support
- 5.1.Keyboard shortcuts
- 5.2.Documentation
- 5.3.Settings
- 5.4.About,大家都知道说的啥!!!
- 6.Sample queries(通过设定好的查询条件进行筛选,有的时候还是比较好用的)
- 6.1.All Processes
- 6.2.CPU Time by process
- 6.3.Cycle by p-state by CPU
- 6.4.CPU Time by CPU by process
- 6.5.Heap Graph:Bytes per type
- 7.抓取的trace文件怎么使用Chrome的perfetto打开?
- 8.目前遇到的问题和不足
- 9.Chrome的perfetto进行trace的抓取
1.工具简介:
1.获取
目前最新版本为7.0.0.301,更新时间为2023-11-21说明官方后期还会一直维护该软件;
https://developer.huawei.com/consumer/cn/doc/Tools-Library/toolkit-download-0000001050819189
2.重点介绍System Profiler工具
1) Graphics Profiler
是基于开源Perfetto
的新图形探查器工具,将System Profiler
和Frame Profiler
,升级为一个入口界面Graphics Profiler,Frame Profiler帧分析工具改为Graphics Profiler的插件。
2)它从设备收集并显示GPU计数器,并提供分析功能。
3)新工具集成了瓶颈自动检测功能。它可以检测GPU和root设备的DDR性能问题,并显示这些问题发生的位置。
4)新工具改进了UX工作流程,带有应用程序列表一个新的录制对话框。
5)新增独立的CLI工具,可以导出gpu counter等数据。
6)新增API调用trace。
7)细粒度GPU和CPU计数器的采样间隔。
2.Navigation介绍
2.1.打开安装好的Graphics Profiler。
2.2.将手机连接到计算机,软件会在手机中安装一个GraphicsProfiler应用(该应用是无界面的)。
2.3.Show files list
在侧边栏的“Show files list”可以找到抓取的trace文件
抓取的trace文件“2023-12-15-22-14-29.trace.pb”应该是经过了压缩10s长的文件一般都小于60M
2.4.Record new trace
1.使用Navigation部分的“Record new trace”按钮打开录制对话框。
2.从列表中选择设备,然后选择需要跟踪的监测项,前提是需要成功链接手机才能弹出下面的弹框界面
2.4.1.Application to profile:是选择抓取的具体进程比如,System tracing和相机;
2.4.2 Recording mode(有三种模式可选)
1.Stop when full(满时停止)
当完整模式被设计为捕获数据时停止,直到内存中的缓冲区填满为止。缓冲区可以捕获尽可能多的数据。一旦缓冲区已满或达到指定的时间限制,记录将自动停止。
2.Ring buffer
当数据量较大,但只需要最新的数据时,环形缓冲区模式很有用。当缓冲区已满时,较新的数据开始覆盖较旧的数据,并继续记录。没有时间限制,需要手动停止录制。
3.Long trace
长跟踪模式允许捕获具有一定I/O开销的大量数据。内存中的缓冲区用作中间存储器,因为其中的数据会定期刷新到磁盘。当达到最大文件大小或指定的时间限制时,录制将自动停止。
2.4.3 Probes
2.4.3.1.CPU有三个选项
1.CPU Load
1)通过/proc/stat对CPU使用率计数器进行轻量级轮询。允许定期监视CPU使用情况。
2) 打开开关后,抓取trace上会显示0-7cpu的负载
2.CPU Frequency
1)通过frace和sysfs记录cpu频率和空闲状态的变化。
2)打开开关后,抓取trace上会显示0-7cpu的频率
3.Scheduling details
1)实现对日程安排事件的高度详细跟踪。
2)打开开关后,抓取trace上会显示0-7cpu的任务执行情况
2.4.3.2.GPU有二个选项
1)GPU Memory
允许跟踪每个进程的gpu内存使用情况。需要选择应用程序。
2)Frames per second
允许捕捉surfaceflinger的fps,需要选择应用程序。
2.4.3.3.Battery有二个选项
1)Battery drain & power rails
轮询充电计数器和来自电池电源管理ic的瞬时功率消耗以及来自powerstats hal的电源导轨
2)Board frequencies
跟踪板传感器的频率变化
3)打开以上两个开关后trace中抓取的信息
2.4.3.4.Memory有六个选项
1)DDR Counters
2)Kernel meminfo
可选择的事件如下:
事件-1 | 作用 | 事件-2 | 作用 |
---|---|---|---|
mem_total | mem_free | ||
mem_available | buffers | ||
cached | swap_cached | ||
active | inactive | ||
activie_anon | inactive_anon | ||
active_file | inactive_file | ||
unevictable | mlocked | ||
swap_total | swap_free | ||
dirty | writeback | ||
anon_pages | mapped | ||
shmem | slab | ||
slab_reclaimable | slab_unreclaimable | ||
kernel_stack | page_tables | ||
commit_limit | commited_as | ||
vmalloc_total | vmalloc_used | ||
vmalloc_chunk | cma_total | ||
cma_free |
3)Hight-frequency memory events
4)Low memory killer
5)Per process stats
6)Virtual memory stats
可选择的事件如下:
事件-1 | 作用 | 事件-2 | 作用 |
---|---|---|---|
nr_free_pages | nr_alloc_batch | ||
nr_inactive_anon | nr_active_anon | ||
nr_inactive_file | nr_active_file | ||
nr_unevictable | nr_mlock | ||
nr_anon_pages | nr_mapped | ||
nr_file_pages | nr_dirty | ||
nr_writteback | nr_slab_reclaimable | ||
nr_slab_unreclaimable | nr_page_table_pages | ||
nr_kernel_stack | nr_overhead | ||
nr_unstable | nr_vmscan_write | ||
nr_vmscan_immediate_reclaim | nr_writeback_temp | ||
nr_isolated_anon | nr_isolated_file | ||
nr_shmem | nr_dirtied | ||
… | … | ||
oom_kill | pglazyfree | ||
pglazyfreed | pgrefill | ||
pgscan_ditrct | pgscan_direct | ||
pgscan_kswapd | pgskip_dma | ||
pgskip_dma | pgskip_movable | ||
pgskip_mormal | pgskip_direct | ||
pgsteal_kswapd | swap_ra | ||
swap_ra_hit | workingset_restore |
2.4.3.5.Applications 有三个选项
1)GPU API Events
2)Atrace userspace annotations(trace的事件内容)
事件-1 | 作用 | 事件-2 | 作用 |
---|---|---|---|
ADB | AIDL calls | ||
Activity Manager | Audio | ||
Binder Kernel driver | Binder global lock trace | ||
Bionic C library | Camera | ||
ART & Dalvik | Database | ||
Graphics | Hardware Modules | ||
Input | Network | ||
Neural Network API | Package Manager | ||
Power Managerment | Resuource Loading | ||
Resource Overlay | RenderScript | ||
Sync Manger | System Server | ||
Vibrator | Video | ||
View System | WebView | ||
Window Manager |
3)Event log(Logcat)
将事件日志流式传输到跟踪中,如果未指定缓冲区筛选器,则会选择所有缓冲区。
事件 | 作用 |
---|---|
Crash | Crash log |
Main | Main log |
Binary events | |
Kernel | kernel log |
Radio | 通讯log |
Security | 安全log |
Stats | 统计相关的数据log |
System | 系统log |
2.4.4 Advanced–>Recording config
之前设置的选项都会在这里添加到Recording config的配置文件中
3.点击“Start Recording”按钮抓取trace文件
1.点击“Start Recording”按钮后会自动打开之前选择的进程比如camera进程;
2.trace抓取完后Huawei Graphics Profiler会自动打开trace文件;
3.camera相关的进程
4.Current Trace(了解内容)
4.1.抓取的trace文件名
4.2.Show timeline,通过时间线的形式展示抓取的trace内容
4.3.Query(SQL),使用SQL语句检索trace中的内容
4.4.Info and stats,手机中的系统信息和package列表
5.Support
5.1.Keyboard shortcuts
5.2.Documentation
Graphics Profiler的指导文档,虽然是英文的但是大家也可以仔细了解一下
5.3.Settings
5.4.About,大家都知道说的啥!!!
6.Sample queries(通过设定好的查询条件进行筛选,有的时候还是比较好用的)
6.1.All Processes
6.2.CPU Time by process
6.3.Cycle by p-state by CPU
6.4.CPU Time by CPU by process
6.5.Heap Graph:Bytes per type
7.抓取的trace文件怎么使用Chrome的perfetto打开?
1.本次抓取文件“2023-12-15-22-14-29.trace.pb”需要在最新版本的perfetto中才能打开,下面弹出框提示:
1).您的Trace Processor已过时,此UI需要TraceProcessor中不存在的功能,您当前正在运行的跟踪处理器本机加速器,如果继续,会导致UI故障。
2).确认版本:
UI version: v40.0-4a28823dd
TraceProcessor RPC API required: 10 or higher
TraceProcessor version: Graphics Profiler 7.0.0.30
2.选择 “Use builtin Wasm”,然后把“2023-12-15-22-14-29.trace.pb”文件拖进去就可以直接打开
3.可以通过“Convery to systrace”将“2023-12-15-22-14-29.trace.pb”转化对应的.trace文件,便于后期的分析
8.目前遇到的问题和不足
1.手机中安装的Graphics Profiler运行不稳定,进程容易被手机查杀,需要设置可以在手机后台运行
2.一定要保证usb线正常链接,否则容易出现以下提示
9.Chrome的perfetto进行trace的抓取
1.貌似每次都要执行adb kill-server动作,主要是进行重新认证
2.每次成功抓取trace后再次抓取trace时候会弹出如下提示,应该是浏览器天然的本地化兼容问题,对比看还是GraphicsProfiler 会好用些