마이크로벤치마킹에 어떤 도구를 사용할 수 있나요?

마이크로벤치마킹에 어떤 도구를 사용할 수 있나요?

C 프로그램의 마이크로벤치마킹에 어떤 도구를 사용해야 할지 잘 모르겠습니다.

나는 두 가지를 모두 측정하고 싶습니다.

  • 메모리 사용량, RSS(상주 세트 크기)
  • CPU 주기

나는 awk 스크립트를 사용 perf record -g하고 perf script파이프했습니다. 이는 메모리 사용량을 알아내는 데 도움이 되지만 CPU 주기 perf record는 샘플링을 통해 얻어지기 때문에 CPU 주기가 정확하지 않습니다 . perf stat정확하지만 분명히 각 기능에 대한 통계를 제공하지는 않습니다. perf_event 라이브러리는 매우 풍부한 문서를 갖고 있는 것으로 보이며 간단한 벤치마킹에는 어려운 작업입니다.

간단히 찾아보세요:

  • 시스템 클릭
  • DTrace
  • LTTng
  • 성능 도구
  • 백합초
  • 파푸이

이것은 잘 문서화되어 있는 훌륭한 도구인 것 같습니다.

가장 중점을 두는 것이 무엇입니까? 아니면 다른 제안이 있으신가요?

시간 내 주셔서 감사합니다.

답변1

자신만의 C 코드를 작성하고 있으므로 다음을 호출하면 됩니다.getrusage() 당신이 언급한 통계를 얻으세요. 관심 있는 벤치마크 코드 전후에 호출하세요.

시스템 호출에는 오버헤드가 있습니다. 단일 측정을 수행하기 위해 벤치마크 코드가 여러 번의 반복을 반복하도록 할 수 있습니다. 동일한 코드를 여러 번 실행하면 타이밍이 크게 변하는 경우 루프 카운터가 너무 낮게 설정된 것입니다.

관련 정보