2014-11-14 3 views
1

perf을 사용하여 C로 작성된 코드를 벤치 마크하려고하는데 프론트 엔드 유휴 사이클 수가 100 % 이상 증가합니다. 나는 백엔드 유휴 사이클 카운트에서도 이와 같은 일이 발생하는 것을 보았다. 동시에 100 명 이상. 1 사이클 당 명령 수는 상당히 많습니다 (5 - 10).perf stat 프론트 엔드 및 백엔드 사이클이 100 %를 초과 함

3,569,966 stalled-cycles-frontend # 111.98% frontend cycles idle 
1,843,327 stalled-cycles-backend # 57.82% backend cycles idle 
17,875,020 instructions    # 5.61 insns per cycle   
            # 0.20 stalled cycles per insn 

퍼센트가 너무 높으면 무엇을 의미합니까?

+1

멀티 코어 프로세서가 있습니까? 이 때문에 종종 100 % 이상의 비율을 얻는 것이 쉽습니다. –

+0

예, 있습니다. 어떻게 해석해야합니까? 아니면 완전히 무시하니? – Danny

+0

하나의 CPU에서만 명령을 실행 해보십시오. 아마도 멀티 코어가 백분율 수치를 엉망으로 만들고 있다는 것을 증명할 것입니다. –

답변

0

이 백분율은 활성 CPU주기를 기준으로 한 것이며 cycles으로 표시됩니다. 따라서 cycles은 총 사이클이 아닌 활성 CPU 사이클이며 프런트 엔드 또는 백 엔드 정지 된 사이클은 그에 따라 계산됩니다.