2

什么是测量 Windows 平台上本机 C++ 代码的亚秒级经过时间的好方法(我正在使用 Windows Vista,Visual Studio 2010)

我试过使用

#include <ctime>

int main()
{    
    clock_t start = clock();
    ... some code
    clock_t end = clock();
    double cpu_time = static_cast<double>(end - start)/CLOCKS_PER_SEC;
}

cpu_time总是0

谢谢 !

4

2 回答 2

2

您可以使用QueryPerformanceFrequencyQueryPerformanceCounterWinAPI 函数。例子

于 2012-11-25T23:18:01.773 回答
0

您的代码全部有效且有效。如果您尝试为特定代码的执行计时,您应该按照 Xymotech 的建议通过循环运行它。主要原因是:

  • 您的代码片段将执行得非常快。在某些情况下,执行计时器的开始、代码片段和结束时间相同。这将导致start保持与 相同的值end,导致 cpu_time等于零。

然而,还有一个额外的好处是能够计算多次迭代的平均执行时间

于 2012-11-26T02:27:01.913 回答