首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决perf工具中的非counted>问题?

如何解决perf工具中的非counted>问题?
EN

Unix & Linux用户
提问于 2016-05-15 15:30:06
回答 1查看 5.9K关注 0票数 4
代码语言:javascript
复制
perf stat -d ./sample.out

产出如下:

代码语言:javascript
复制
Performance counter stats for './sample.out':

          0.586266 task-clock (msec)         #    0.007 CPUs utilized          
                 2 context-switches          #    0.003 M/sec                  
                 1 cpu-migrations            #    0.002 M/sec                  
               116 page-faults               #    0.198 M/sec                  
          7,35,790 cycles                    #    1.255 GHz                     [81.06%]
     <not counted> stalled-cycles-frontend 
   <not supported> stalled-cycles-backend  
     <not counted> instructions            
     <not counted> branches                
     <not counted> branch-misses           
   <not supported> L1-dcache-loads:HG      
     <not counted> L1-dcache-load-misses:HG
     <not counted> LLC-loads:HG            
   <not supported> LLC-load-misses:HG      

       0.088013919 seconds time elapsed

我读到了为什么<not supported>会出现在上。但我得到的<not counted>,甚至基本的计数器,如指示,分支等。谁能建议如何使它工作?

有趣的是:

苏多珀夫睡眠3

给出输出:

代码语言:javascript
复制
Performance counter stats for 'sleep 3':

          0.598484 task-clock (msec)         #    0.000 CPUs utilized          
                 2 context-switches          #    0.003 M/sec                  
                 0 cpu-migrations            #    0.000 K/sec                  
               181 page-faults               #    0.302 M/sec                  
     <not counted> cycles                  
     <not counted> stalled-cycles-frontend 
   <not supported> stalled-cycles-backend  
     <not counted> instructions            
     <not counted> branches                
     <not counted> branch-misses

-C 1睡眠3

代码语言:javascript
复制
 Performance counter stats for 'CPU(s) 1':

       3002.640578 task-clock (msec)         #    1.001 CPUs utilized           [100.00%]
               425 context-switches          #    0.142 K/sec                   [100.00%]
                 9 cpu-migrations            #    0.003 K/sec                   [100.00%]
                 5 page-faults               #    0.002 K/sec                  
       7,82,97,019 cycles                    #    0.026 GHz                     [33.32%]
       9,38,21,585 stalled-cycles-frontend   #  119.83% frontend cycles idle    [33.32%]
   <not supported> stalled-cycles-backend  
       3,09,81,643 instructions              #    0.40  insns per cycle        
                                             #    3.03  stalled cycles per insn [33.32%]
         70,15,390 branches                  #    2.336 M/sec                   [33.32%]
          6,38,644 branch-misses             #    9.10% of all branches         [33.32%]

       3.001075650 seconds time elapsed

为什么这件意外的事起作用了?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2016-05-15 16:36:14

我想,您的处理器不支持这么多计数器,而且它们之间的切换太频繁了。

在最后一个例子中,您可以看到最后一列,其中计数器是多路复用的(只计算了33%的时间)。如果您使用足够小的任务(或者在更多的内核上使用?),则不会计算它们,因为所有的时间都在使用其他任务。在您的第一个示例中,只有cycles在时间上被成功计算。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/283288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档