간단한 경과 시간 측정
질문:
프로그램에서 경과 시간을 측정할 때 time(), 왜 이전 및 이후 값이 그대로 유지될 수 있습니까? 동일합니까?
설명:
time()은 Epoch 이후의 현재 시간을 초 단위로 반환합니다. 측정할 시간이 짧을 경우 전후 값의 차이가 너무 작아 감지할 수 없을 수 있습니다.
해결책:
짧게 정확하게 측정하려면 시간 범위가 있는 경우 대체 방법 사용을 고려하십시오.
C 구조화된 시간 측정:
struct timeval startTV, endTV; gettimeofday(&startTV, NULL); // Execute time-consuming tasks gettimeofday(&endTV, NULL); timersub(&endTV, &startTV, &diff); printf("**time taken = %ld %ld\n", diff.tv_sec, diff.tv_usec);
C 11 스타일 정밀 시간 측정:
#include <chrono> std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now(); // Execute time-consuming tasks std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now(); std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::microseconds>(end - begin).count() << "[µs]" << std::endl; std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin).count() << "[ns]" << std::endl;
위 내용은 'time()'이 때때로 짧은 작업 전후에 동일한 값을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!