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 有三个选项
 
- 4.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
抓取的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 | 

4.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 会好用些
 





![力扣第2题-判断一个数值是否是回文数[简单]](https://img-blog.csdnimg.cn/img_convert/59ca728e9229c0ce33e329f14bba1f02.png)












