为什么pref分析出来的CPU utilization大于1?

Why does the CPU utilization analyzed by pref is larger than 1?

q@centos:~/QQMail/platform/task/task2>perf stat bazel-bin/test

 Performance counter stats for 'bazel-bin/test':

      16380.991838      task-clock (msec)         #    3.430 CPUs utilized          
           583,363      context-switches          #    0.036 M/sec                  
               227      cpu-migrations            #    0.014 K/sec                  
            37,899      page-faults               #    0.002 M/sec                  
                 0      cycles                    #    0.000 GHz                    
                 0      stalled-cycles-frontend   #    0.00% frontend cycles idle   
                 0      stalled-cycles-backend    #    0.00% backend  cycles idle   
                 0      instructions              #    0.00  insns per cycle        
                 0      branches                  #    0.000 K/sec                  
                 0      branch-misses             #    0.000 K/sec                  

       4.775427302 seconds time elapsed

输出如上所示。 我想知道 perf 输出的任务时钟是什么意思?为什么比过去的时间还长? 还有一些数据是0,可能是哪里出了问题?

发生这种情况是因为时间是按 CPU 计算的,如 3.430 CPUs utilized 所示。在那段时间里,它平均占用了 3.43 CPU 秒。您可以检查除以 16380/3.43 得到的是经过的时间。