Measure execution time in C (on Windows)

て烟熏妆下的殇ゞ 提交于 2019-12-17 20:53:36

问题


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.


回答1:


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



回答2:


You can use QueryPerformanceCounter combined with QueryPerformanceFrequency to get nanosecond precision.



来源:https://stackoverflow.com/questions/15720542/measure-execution-time-in-c-on-windows

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!