我有一个解析linux命令perf输出的程序。它需要使用选项-x
,(字段分隔符选项。我想使用perf提取elapsed time
(不是task-time
或cpu-clock
)。但是当我使用{时{1}}选项,输出中没有经过的时间,我找不到相应的perf事件。以下是样本输出
-x
现在使用字段分隔符选项
perf stat ls
============
Performance counter stats for 'ls':
0.934889 task-clock (msec) # 0.740 CPUs utilized
6 context-switches # 0.006 M/sec
0 cpu-migrations # 0.000 K/sec
261 page-faults # 0.279 M/sec
1,937,910 cycles # 2.073 GHz
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
1,616,944 instructions # 0.83 insns per cycle
317,016 branches # 339.095 M/sec
12,439 branch-misses # 3.92% of all branches
0.001262625 seconds time elapsed //here we have it
感谢任何帮助
答案 0 :(得分:1)
# perf stat ls 2>&1 >/dev/null | tail -n 2 | sed 's/ \+//' | sed 's/ /,/'
0.002272536,seconds time elapsed
答案 1 :(得分:0)
从内核5.2-rc1开始,duration_time
公开了一个名为perf stat
的新事件,以解决此问题。此事件的值完全等于time elapsed
的值,但是单位是纳秒而不是秒。