cperformancetimertiming

Best timing method in C?


What is the best way to time a code section with high resolution and portability?

/* Time from here */
ProcessIntenseFunction();
/* to here. */

printf("Time taken %d seconds %d milliseconds", sec, msec);

Is there a standard library that would have a cross-platform solution?


Solution

  • I think this should work:

    #include <time.h>
    
    clock_t start = clock(), diff;
    ProcessIntenseFunction();
    diff = clock() - start;
    
    int msec = diff * 1000 / CLOCKS_PER_SEC;
    printf("Time taken %d seconds %d milliseconds", msec/1000, msec%1000);