Background
C에서 특정 함수의 실행 시간을 알아내는 것은 다음과 같습니다. 성능 분석 및 최적화에 매우 중요합니다. 기본 Linux는 시간을 정확하게 측정하기 위한 제한된 옵션을 제공하며 Boost.Chrono의 process_user_cpu_clock 함수는 전체 함수 실행 시간을 포괄하지 않고 사용자 CPU 시간만 대상으로 합니다.
더 정확한 솔루션
다행히 C 11은 std::chrono::high_solution_clock을 통해 다양한 시간 측정 기능을 도입했습니다. <크로노> 헤더. 이 고해상도 시계는 함수 실행 시간에 대한 정확하고 포괄적인 측정값을 제공합니다.
코드 예
#include <chrono> /* Only for this example. */ #include <iostream> #include <thread> void long_operation() { /* Simulating a long, intensive operation. */ using namespace std::chrono_literals; std::this_thread::sleep_for(150ms); } int main() { using std::chrono::high_resolution_clock; using std::chrono::duration_cast; using std::chrono::duration; using std::chrono::milliseconds; auto t1 = high_resolution_clock::now(); long_operation(); auto t2 = high_resolution_clock::now(); /* Milliseconds as an integer. */ auto ms_int = duration_cast<milliseconds>(t2 - t1); /* Milliseconds as a double. */ duration<double, std::milli> ms_double = t2 - t1; std::cout << ms_int.count() << "ms\n"; std::cout << ms_double.count() << "ms\n"; return 0; }
이 코드 조각은 high_solution_clock을 사용하여 함수 실행 시간을 측정하는 방법을 보여줍니다. long_Operation 함수의 지속 시간. t1 및 t2 변수는 함수 실행 전후의 타임스탬프를 기록하고 그 차이를 밀리초로 변환하여 표시합니다.
이 기술을 사용하면 함수 실행 시간에 관계없이 정확하고 일관된 측정값을 얻을 수 있습니다. CPU 부하 변동을 통해 안정적인 성능 평가를 보장합니다.
위 내용은 C에서 함수 실행 시간을 어떻게 정확하게 측정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!