gpt4 book ai didi

linux - 如何从 perf stat 的输出中解析指令数和耗时

转载 作者:太空狗 更新时间:2023-10-29 12:39:18 25 4
gpt4 key购买 nike

长话短说

有什么方法可以使 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 valueoptional unit of metric 可能与我的需求有关,但我无法弄清楚具体情况。

最佳答案

“已用时间”是从 tools/perf/util/stat-display.c fileprint_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_utimeru_data.ru_stime 中,“seconds time elapsed”是 config 的平均值->walltime_nsecs_stats

stat-display.c 中没有其他代码来显示ru_data.ru_utimeru_data.ru_stimewalltime_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com