>백엔드 개발 >C++ >C에서 경과 시간을 어떻게 정확하게 측정할 수 있습니까?

C에서 경과 시간을 어떻게 정확하게 측정할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-30 15:41:10527검색

How Can I Accurately Measure Elapsed Time in C  ?

간편한 경과 시간 측정

프로그램 세그먼트의 경과 시간을 정확하게 측정하기 위해 덜 정확한 time() 함수에 대한 대안을 사용할 수 있습니다.

사용 gettimeofday()

제공된 코드에 표시된 것처럼 gettimeofday()는 타이머 정밀도를 마이크로초까지 제공합니다. 시작 시간 측정과 종료 시간 측정 간의 차이를 계산하여 경과 시간 값을 얻을 수 있습니다.

결과 해석

시간 값 해석:

  • 걸린 시간 = 0 26339: 26,339를 나타냄 마이크로초 또는 약 26.339밀리초.
  • 걸린 시간 = 4 45025: 4초와 45.025밀리초를 나타냅니다.

C 11 접근 방식

보다 현대적이고 정확한 접근 방식은 C 11 library:

  • std::chrono::steady_clock::now(): 나노초 정밀도로 현재 시간을 검색합니다.
  • duration_cast : 시간 차이를 원하는 단위(예: 마이크로초 또는 나노초).

예제 코드

// C++11 Style:
#include <chrono>

std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
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() 또는 나노초보다 더 정확한 측정값을 제공합니다. gettimeofday().

위 내용은 C에서 경과 시간을 어떻게 정확하게 측정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.