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计数器的采样间隔。
在侧边栏的“Show files list”可以找到抓取的trace文件
抓取的trace文件“2023-12-15-22-14-29.trace.pb”应该是经过了压缩10s长的文件一般都小于60M
1.使用Navigation部分的“Record new trace”按钮打开录制对话框。
2.从列表中选择设备,然后选择需要跟踪的监测项,前提是需要成功链接手机才能弹出下面的弹框界面
当完整模式被设计为捕获数据时停止,直到内存中的缓冲区填满为止。缓冲区可以捕获尽可能多的数据。一旦缓冲区已满或达到指定的时间限制,记录将自动停止。
2.Ring buffer
当数据量较大,但只需要最新的数据时,环形缓冲区模式很有用。当缓冲区已满时,较新的数据开始覆盖较旧的数据,并继续记录。没有时间限制,需要手动停止录制。
3.Long trace
长跟踪模式允许捕获具有一定I/O开销的大量数据。内存中的缓冲区用作中间存储器,因为其中的数据会定期刷新到磁盘。当达到最大文件大小或指定的时间限制时,录制将自动停止。
1.CPU Load
1)通过/proc/stat对CPU使用率计数器进行轻量级轮询。允许定期监视CPU使用情况。
2) 打开开关后,抓取trace上会显示0-7cpu的负载
2.CPU Frequency
1)通过frace和sysfs记录cpu频率和空闲状态的变化。
3.Scheduling details
2)打开开关后,抓取trace上会显示0-7cpu的任务执行情况
1)GPU Memory
允许跟踪每个进程的gpu内存使用情况。需要选择应用程序。
2)Frames per second
允许捕捉surfaceflinger的fps,需要选择应用程序。
1)Battery drain & power rails
轮询充电计数器和来自电池电源管理ic的瞬时功率消耗以及来自powerstats hal的电源导轨
2)Board frequencies
跟踪板传感器的频率变化
3)打开以上两个开关后trace中抓取的信息
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 |
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 |
之前设置的选项都会在这里添加到Recording config的配置文件中
1.点击“Start Recording”按钮后会自动打开之前选择的进程比如camera进程;
2.trace抓取完后Huawei Graphics Profiler会自动打开trace文件;
3.camera相关的进程
Graphics Profiler的指导文档,虽然是英文的但是大家也可以仔细了解一下
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文件,便于后期的分析
1.手机中安装的Graphics Profiler运行不稳定,进程容易被手机查杀,需要设置可以在手机后台运行
2.一定要保证usb线正常链接,否则容易出现以下提示
1.貌似每次都要执行adb kill-server动作,主要是进行重新认证
2.每次成功抓取trace后再次抓取trace时候会弹出如下提示,应该是浏览器天然的本地化兼容问题,对比看还是GraphicsProfiler 会好用些