해결 방법성능 도구에 문제가 있습니까?

해결 방법성능 도구에 문제가 있습니까?
perf stat -d ./sample.out

출력은 다음과 같습니다

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 supported>. 하지만 <not counted>지침, 분기 등과 같은 기본 카운터도 있습니다. 누구든지 작동시키는 방법을 제안할 수 있습니까?

재미있게:

sudo 성능 통계 수면 3

출력은 다음과 같습니다.

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

sudo perf stat -C 1 수면 3

 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

이것이 예상치 못한 효과를 발휘하는 이유는 무엇입니까? ?

답변1

귀하의 프로세서는 지원하지 않습니다카운터가 너무 많아서그리고너무 자주 전환함나는 그들 사이에 추측한다.

카운터가 다중화되는 마지막 예의 마지막 열(전체 시간의 33% 이상만 계산됩니다.). 당신이 사용하는 경우충분히 작은 작업(또는 더 많은 코어?) 다른 코어는 항상 사용되므로 계산되지 않습니다. 첫 번째 예에서는 cycles시간 계산만 관리합니다.

관련 정보