Perf 도구 출력 이해

Perf 도구 출력 이해

최근에 내 플랫폼에 Perf 도구를 설치했으며 이를 사용하여 내 플랫폼을 분석하고 싶습니다.
독립형 애플리케이션을 분석하기 시작했습니다. 내가 사용하는 명령은 다음과 같습니다.

   perf start ./helloworld

  Performance counter stats for './helloworld':

      4.555957 task-clock                #    0.000 CPUs utilized
             1 context-switches          #    0.219 K/sec
             0 cpu-migrations            #    0.000 K/sec
           124 page-faults               #    0.027 M/sec
           <not supported> cycles
           <not supported> stalled-cycles-frontend
           <not supported> stalled-cycles-backend
           <not supported> instructions
           <not supported> branches
           <not supported> branch-misses

           60.005519331 seconds time elapsed

이제 이 출력을 어떻게 해석해야 할지 모르겠습니다. 기대에 부응합니까?

또한 여기 필드로 무엇을 해야 하며 <not supported>명령을 실행하기 전에 이 필드를 지원하려면 무엇을 활성화해야 합니까?

답변1

"<지원되지 않음>" 메시지는 플랫폼이 PIC(Performance Instrumentation Counter)라고도 알려진 특정 프로세서의 PMU(Performance Monitoring Unit) 하드웨어 카운터를 지원하지 않음을 의미합니다 perf. 이는 일반적으로 가상화된 환경에서 발생합니다. 베어메탈에서는 이러한 카운터를 볼 수 있습니다(특수 CPU 유형을 사용하지 않는 한).

가상화 소프트웨어가 게스트에 대해 하드웨어 카운터를 활성화할 수 있으면 문제를 해결할 수 있습니다. 예를 들어 최신 버전의 VMware에는 이러한 옵션이 있습니다.

설명하자면, 카운터를 활성화할 수 있는 경우 인쇄되는 가장 유용한 메트릭 중 하나는 메모리 I/O를 나타내는 IPC(Instructions Per Cycle)입니다. 이는 낮을수록 낮습니다. 그러나 귀하의 플랫폼에는 카운터가 없기 때문에 귀하의 예에는 존재하지 않습니다.

관련 정보