Is there a better function or way to measure time than clock()
function on Windows? I have a short operation and when I try clock()
or gettickcount()
it says it took 0.0 seconds. I need a way to measure it by miliseconds or nanoseconds.
问问题
9155 次
2 回答
13
You can use QueryPerformanceCounter
and QueryPerformanceFrequency
:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main(void)
{
LARGE_INTEGER frequency;
LARGE_INTEGER start;
LARGE_INTEGER end;
double interval;
QueryPerformanceFrequency(&frequency);
QueryPerformanceCounter(&start);
// code to be measured
QueryPerformanceCounter(&end);
interval = (double) (end.QuadPart - start.QuadPart) / frequency.QuadPart;
printf("%f\n", interval);
return 0;
}
于 2013-03-30T16:10:20.263 回答
0
You can use QueryPerformanceCounter combined with QueryPerformanceFrequency to get nanosecond precision.
于 2013-03-30T16:10:08.243 回答