精确的时间测量

2021-12-14 00:00:00 c++ visual-studio-2010 chrono ctime

我在 C++ 中使用 time.h 来测量函数的计时.

I'm using time.h in C++ to measure the timing of a function.

clock_t t = clock();
someFunction();
printf("
Time taken: %.4fs
", (float)(clock() - t)/CLOCKS_PER_SEC);

但是,我总是将时间设为 0.0000.clock() 和 t 在单独打印时具有相同的值.我想知道是否有办法在 C++ 中精确测量时间(可能以纳秒为单位).我使用的是 VS2010.

however, I'm always getting the time taken as 0.0000. clock() and t when printed separately, have the same value. I would like to know if there is way to measure the time precisely (maybe in the order of nanoseconds) in C++ . I'm using VS2010.

推荐答案

我通常使用 QueryPerformanceCounter 函数.

I usually use the QueryPerformanceCounter function.

示例:

LARGE_INTEGER frequency;        // ticks per second
LARGE_INTEGER t1, t2;           // ticks
double elapsedTime;

// get ticks per second
QueryPerformanceFrequency(&frequency);

// start timer
QueryPerformanceCounter(&t1);

// do something
...

// stop timer
QueryPerformanceCounter(&t2);

// compute and print the elapsed time in millisec
elapsedTime = (t2.QuadPart - t1.QuadPart) * 1000.0 / frequency.QuadPart;

相关文章