精确的时间测量

时间:2023-03-09
本文介绍了精确的时间测量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我在 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;

这篇关于精确的时间测量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

上一篇:如何在 C++ 中覆盖 cout? 下一篇:C++11 中是否有并发容器?

相关文章