微架构分析
命令功能
基于ARM PMU(Performance Monitor Unit)事件,获得指令在CPU流水线上的运行情况,帮助用户快速定位当前应用在CPU上的性能瓶颈。用户可以有针对性地修改自己的程序,以充分利用当前的硬件资源。
命令格式
devkit tuner topdown [-h | --help][-d <DURATION> | --duration=DURATION][-p <PID> | --pid=PID][-r <RANGE> | --collection-range=RANGE][-c <CPU> | --cpu=CPU][-L <METRIC> | --profile-level=METRIC][-D <DELAY> | --delay= DELAY][-i <INTERVAL> | --interval=INTERVAL] COMMAND [appDir][appArgs]

devkit tuner topdown可采集指定应用,在命令后添加指定应用路径和应用参数即可;当参数-c/--cpu或参数-p/--pid存在时,优先采集参数指定项。
参数说明
参数 |
参数选项 |
说明 |
---|---|---|
-h/--help |
- |
获取帮助信息。 |
-c/--cpu |
core_num |
指定采集的CPU核数,如“0”、“0,1,2”、“0-2”。 |
-d/--duration |
Num |
设置采集时长,单位为秒,不设置时默认为一直采集,可使用Ctrl+\取消任务或Ctrl+C停止采集并进入分析。 |
-D/--delay |
Num |
设置延迟采样时长,不指定时默认为0秒。 |
-i/--interval |
Num |
设置采样间隔,不设置时默认为1秒;若已设置采集时长 ,需小于等于采集时长。 |
-l/--log-level |
0,1,2,3 |
配置日志等级。默认值为1(info)。
|
-L/--profile-level |
1,2,3,4,5,6 |
设置分析指标,不设置时默认为1。
|
-o/--output |
file |
设置报告数据压缩包名称和输出路径,仅输入名称时默认生成在当前所在目录;需和--package一同使用。 |
-r/--collection-range |
|
设置采集进程的等级,当-p/--pid设置为ALL时,可以收集内核模式进程或用户模式进程。若不指定默认采集全部模式。
|
-p/--pid |
|
指定采集的进程PID,多个进程PID可用“,”分隔,若同时使用-p和-c参数则优先采集指定PID的进程。若不指定默认采集全部进程。 |
--package |
- |
设置是否生成报告数据压缩包,不指定压缩包名称和路径时默认在当前所在目录生成topdown-时间戳.tar。 |
使用示例
- 针对CPU采集
devkit tuner topdown -c 0-127 -d 3 -o /home/topdown_cpu -L 2 --package
该命令参数-c 0-127采集0到127的CPU核,采集时长为3秒,参数-o /home/topdown_cpu和--package生成以topdown_cpu命名的报告数据压缩包至指定路径,参数-L 2为采集Back-End Bound->Core Bound指令数据。
结果回显:
Topdown metrics of 'CPU(s) 0-127': Instructions 564372224 Cycles 814631616 IPC 0.69 Backend Bound 30.16% |-- Core Bound |-- 20.40% |-- Divider Stall |-- 0.00% |-- FSU Stall |-- 0.00% |-- Exe Ports Stall |-- 20.40% Bad Speculation 12.29% Frontend Bound 40.23% Retiring 17.32% 3421 milliseconds time elapsed info: The report /home/topdowm.tar is generated successfully. info: To view summary report. you can run: devkit report -i /home/topdown.tar info: To view detail report. you can import the report to the WebUI or IDE to view details.
- 针对进程ID采集
devkit tuner topdown -p 1891015 -d 3 -o /home/topdown_pid --package
该命令参数-p 1891015采集PID为1891015的进程,采集时长为3秒,参数-o /home/topdown_pid和--package生成以topdown_pid命名的报告数据压缩包至指定路径,未指定参数-L则采集Back-End Bound,Bad Speculation,Front-End Bound,Retiring指令数据。
结果回显:
Topdown metrics of process id '1891015': Instructions 30194684 Cycles 65768472 IPC 0.46 Backend Bound 29.20% Bad Speculation 7.12% Frontend Bound 52.20% Retiring 11.48% 3362 milliseconds time elapsed info: The report /home/topdowm-pid.tar is generated successfully. info: To view summary report. you can run: devkit report -i /home/topdown_pid.tar info: To view detail report. you can import the report to the WebUI or IDE to view details.
- 针对应用采集
devkit tuner topdown -d 10 -o /home/topdown_app -L 2 --package /opt/testdemo/falsesharinglong
该命令采集时长为10秒,参数-o /home/topdown_app和--package生成以topdown_app命名的报告数据压缩包至指定路径,参数-L 2为采集Back-End Bound->Core Bound指令数据。
结果回显:
Topdown metrics of '/opt/testdemo/falsesharinglong': Instructions 59373846528 Cycles 52865875968 IPC 1.12 Backend Bound 67.58% |-- Core Bound |-- 63.31% |-- Divider Stall |-- 0.00% |-- FSU Stall |-- 0.00% |-- Exe Ports Stall |-- 63.31% Bad Speculation 3.56% Frontend Bound 0.78% Retiring 28.08% 11153 milliseconds time elapsed info: The report /home/topdown_app.tar is generated successfully. info: To view summary report. you can run: devkit report -i /home/topdown_app.tar info: To view detail report. you can import the report to the WebUI or IDE to view details.
以上界面回显为微架构分析任务的总览信息,时序信息可通过--package参数打包生成TAR包,导入Web界面查看图形化信息;导入详情请参见任务管理中的任务导入部分内容。