Measuring time in C
c, matrix, multiplication, time
Solution
`clock` estimates the CPU time used by your program; that's the time the CPU has been busy executing instructions belonging to your program. `sleep` doesn't perform any work, so it takes no noticeable CPU time (even if it takes wallclock time).
If you want to measure wallclock time, use `time`:
time_t start = time(NULL);
sleep(3);
printf("%.2f\n", (double)(time(NULL) - start));
will print a number close to three.
Problem
I'm trying to measure some activity in C (Matrix multiplying) and noticed that I should do something like this: ``` clock_t start = clock(); sleep(3); clock_t end = clock(); double elapsed_time = (end - start)/(double)CLOCKS_PER_SEC; printf("Elapsed time: %.2f.\n", elapsed_time); ``` The output is: ``` Elapsed time: 0.00. ``` Why is this happening?