4
我有一个程序,它解析的Linux命令perf的输出。它需要使用选项-x
(字段分隔符选项,我想用perf提取elapsed time
(不是task-time
或cpu-clock
)但是当我使用-x
选项时,输出中不存在经过时间,并且找不到对应PERF事件。下面是样本输出,字段分隔符选项perf得到的时间与字段分隔符选项
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
现在
perf stat -x, ls
================
2.359807,task-clock
6,context-switches
0,cpu-migrations
261,page-faults
1863028,cycles
<not supported>,stalled-cycles-frontend
<not supported>,stalled-cycles-backend
1670644,instructions
325047,branches
12251,branch-misses
任何帮助理解
为什么不更改perf资源来打印它。 – 2014-12-03 20:33:34
查看perf源代码后,我发现当使用字段分隔符时,目前没有任何方法可以打印此代码。我想知道为什么。我想如果有人希望在常规报告中使用这些数据,他们可能需要在分隔视图中使用这些数据。 – 2014-12-04 05:05:26
@Milind更改perf的源代码的问题是,当我必须分配我的代码时,我还必须分配一个自定义的perf。但是,正如Gabriel所说,如果当前的perf代码没有办法,我会尝试创建一个补丁文件并发送给perf维护人员。 – knightrider 2014-12-05 08:29:14