我想计算执行函数所需的时间(以纳秒为单位)。我知道这可能是一个重复的问题,但我无法在任何地方找到解决方案。我已经有一个毫秒的工作计算(它来自MSDN):
QueryPerformanceFrequency(&freq);
QueryPerformanceCounter(&begin);
callfunction();
QueryPerformanceCounter(&end);
elapsed.QuadPart = (end.QuadPart - begin.QuadPart);
elapsed.QuadPart *= 1000000.0;
elapsed.QuadPart /= freq.QuadPart;
我尝试用相同的想法做一些能够达到纳秒结果的东西,但无济于事。我已经在linux中使用函数clock_gettime()实现了这个。
此外,代码是用C语言编写的,而不是用C ++编写的。
感谢您的帮助。
答案 0 :(得分:1)
中断和读取硬件时钟在某种程度上不起作用。
您可以对例程进行概要分析,它将有效地为您提供每个函数中多长时间的百分比。如果您知道调用该函数的次数以及代码整个运行的时间长度,您可以得到一个近似的想法。