- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
长话短说
有什么方法可以使 perf stat
输出时间在提供 -x
时过去?
背景
我执行了perf stat -e instructions:u make run
,输出粘贴在下面。
Performance counter stats for 'make run':
53,781,961,288 instructions:u
2.802749955 seconds time elapsed
21.453244000 seconds user
0.249223000 seconds sys
我想解析指令数和耗时,所以我添加了 -x
选项使输出以逗号分隔,并将相应的输出粘贴在下面。
53781782267,,instructions:u,20694056846,100.00,,
我注意到没有显示所有时间测量值,所以我检查了 perf help stat
的输出。在 CSV FORMAT
部分,我发现 counter 的运行时间
、optional metric value
和 optional unit of metric
可能与我的需求有关,但我无法弄清楚具体情况。
最佳答案
“已用时间”是从 tools/perf/util/stat-display.c
file 的 print_footer
函数打印出来的如果 (config->ru_display)
为真。
但是当存在设置 csv_output 的“-x ,
”选项时,print_footer
不会从 perf_evlist__print_counters
中调用。
if (!interval && !config->csv_output)
print_footer(config);
“用户”/“系统”时间在 config->ru_data.ru_utime
和 ru_data.ru_stime
中,“seconds time elapsed”是 config 的平均值->walltime_nsecs_stats
。
stat-display.c
中没有其他代码来显示ru_data.ru_utime
、ru_data.ru_stime
或walltime_nsecs_stats
,因此在 Linux 内核版本 4.20 中,无法以 CSV 模式从 perf stat 输出时间。
您可以修补 stat-display.c
文件以输出您需要的任何内容并编译 perf
(cd tools/perf; make
).来自其他内核版本的 perf 工具将适用于任何 linux 内核。
关于linux - 如何从 perf stat 的输出中解析指令数和耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54021853/
我是一名优秀的程序员,十分优秀!