使用字段分隔符选项获取时间

时间:2014-12-02 20:06:56

标签: linux performance perf

我有一个解析linux命令perf输出的程序。它需要使用选项-x,(字段分隔符选项。我想使用perf提取elapsed time(不是task-timecpu-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

感谢任何帮助

2 个答案:

答案 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的值,但是单位是纳秒而不是秒。