精确的时间测量
我在 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;
相关文章