`perf stat` 옵션 `--cpu`는 실제로 무엇을 표시합니까?

`perf stat` 옵션 `--cpu`는 실제로 무엇을 표시합니까?

--cpu옵션을 이해하려고 노력 중입니다 perf-stat. 매뉴얼 페이지에는 다음과 같이 나와 있습니다.

제공된 CPU 목록에만 의존하십시오. 여러 CPU를 공백 없이 쉼표로 구분된 목록(0,1)으로 제공할 수 있습니다. CPU 범위는 -: 0-2로 지정됩니다. 스레드별 모드에서는 이 옵션이 무시됩니다. 시스템 전체 모니터링을 활성화하려면 -a 옵션이 여전히 필요합니다. 기본값은 모든 CPU를 사용하는 것입니다.

이 옵션을 사용하여 프로그램이 실행될 CPU를 제어할 수 있습니까? 를 입력하면 --cpu 0프로그램이 CPU 0에서만 실행됩니까? 그렇지 않은 경우 이 옵션의 값은 무엇입니까(이 옵션을 실행할 때마다 결과가 다를 수 있으므로 perf stat)?

답변1

값은 --cpu반환해야 하는 CPU 통계입니다. 이는 실행될 수도 있지만 바이너리 자체가 동일한 CPU에서 실행된다는 의미는 아닙니다.


단일 CPU를 원하는 경우:

perf-stat --cpu 0

CPU 0에 대한 통계가 반환됩니다.


다중 CPU의 경우(예: CPU 2개):

perf-stat --cpu 1,2

CPU 1과 2에 대한 통계가 반환됩니다.


범위:

perf-stat --cpu 0-4

0에서 4(0, 1, 2, 3, 4)까지의 CPU 통계를 반환합니다.


이 옵션을 사용하여 프로그램이 실행될 CPU를 제어할 수 있습니까? --cpu 0을 입력하면 프로그램이 CPU 0에서만 실행됩니까?

CPU 0에 대한 통계만 반환하는 프로그램을 사용하는 경우 해당 --cpu 0프로그램이 CPU 0에서만 실행된다는 것을 보장하지 않으며 문서 어디에도 동일한 CPU에서 실행된다는 언급이 없지만 여전히 그렇게 할 수 있습니다.

편집하다:

테스트를 통해 --cpu.

관련 정보