C 및 C의 효율적인 경과 시간 측정
경과 시간을 정확하게 측정하는 것은 프로그래밍 성능 분석에 매우 중요합니다. 그러나 표준 C 함수 time()은 짧은 기간의 작업에는 신뢰할 수 없습니다.
C에서 gettimeofday() 사용
이 문제를 해결하기 위해 C 프로그래머는 다음을 수행할 수 있습니다. 마이크로초 정밀도로 현재 시간을 반환하는 gettimeofday() 함수를 사용합니다. 예는 다음과 같습니다.
#include <sys/time.h> struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Start time // Perform long-running tasks gettimeofday(&endTV, NULL); // End time time_t diffSeconds = endTV.tv_sec - startTV.tv_sec; long diffMicroseconds = endTV.tv_usec - startTV.tv_usec; printf("Time taken: %ld seconds, %ld microseconds\n", diffSeconds, diffMicroseconds);
C에서 std::chrono 사용
C에서 std::chrono 라이브러리는 측정을 위한 보다 현대적이고 이식 가능한 솔루션을 제공합니다. 경과 시간. 다음 예를 고려하십시오.
#include <chrono> using namespace std::chrono; auto begin = steady_clock::now(); // Start time // Perform long-running tasks auto end = steady_clock::now(); // End time duration<double, nano> diff = end - begin; cout << "Time taken: " << diff.count() << " nanoseconds" << endl;
결과 이해
gettimeofday() 및 std::chrono의 출력은 초 및 마이크로초 단위의 시간 차이를 반환합니다. 나노초. 예:
첫 번째 예에서 경과 시간은 4.025초입니다. 두 번째 예에서는 0.026339초입니다. std::chrono는 기본적으로 나노초를 반환하므로 원하는 경우 수동으로 마이크로초 또는 초로 변환해야 할 수도 있습니다.
위 내용은 C와 C에서 경과 시간을 어떻게 정확하게 측정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!