캐시 누락, I/O, 인터럽트, 페이지 오류의 대기 시간을 무시하고 알고리즘에 사용된 주기 수를 측정하고 싶습니다. 이상적으로 이는 무제한 사전 로드 캐시, 대기 시간 없음, 무제한 대역폭 I/O 및 시스템에서 실행되는 다른 항목이 없는 애플리케이션을 실행하는 완벽한 시스템의 주기 수입니다.
나는 실행 중인 것을 제한하여 이를 수행하고 싶지 않습니다. 페이지 손실, 중단 등에 대한 계산을 줄이고 싶습니다.
코드를 계측할 수 없습니다. 프로세스를 실행하고 이에 대한 이상적인 시간을 얻고 싶습니다. 목표는 로드된 서버에서 O(.) 이론적 복잡성에 접근하면서 반복성이 높은 알고리즘 타이밍 결과를 얻는 것입니다.
커널이나 핵심 라이브러리를 계측하거나 전문화하는 경우에는 문제가 없습니다. 앱이 아닙니다. 어떤 아이디어가 있나요?
답변1
최신 CPU에는 다양한 항목을 측정하는 성능 카운터 레지스터가 있습니다("사이클"보다 더 복잡하지만).
perf
이러한 카운터를 사용하여 측정을 수행하는 도구입니다.여기더 알아보기.