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
시간 계산만 관리합니다.