用C测量执行时间(在Windows上)

时间:2013-03-30 16:00:38

标签: c windows execution-time

在Windows上有比clock()函数更好的功能或方法吗?我有一个简短的操作,当我尝试clock()gettickcount()时,它说需要0.0秒。我需要一种方法来测量毫秒或纳秒。

2 个答案:

答案 0 :(得分:9)

您可以使用QueryPerformanceCounterQueryPerformanceFrequency

#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;
}

答案 1 :(得分:0)

您可以使用QueryPerformanceCounter结合QueryPerformanceFrequency来获得纳秒精度。