Link to home
Start Free TrialLog in
Avatar of anothercto
anotherctoFlag for United States of America

asked on

clock() not working

#include <time.h>

....
printf("cpu= %g",clock()/CLOCKS_PER_SEC);
.....

output: cpu= 0
Avatar of jkr
jkr
Flag of Germany image

Make it read

printf("cpu= %f",((double) clock())/CLOCKS_PER_SEC);
FYI, the way you did it, you're doing an integer division. So, if clock() < CLOCKS_PER_SEC, the result is '0'...
Avatar of anothercto

ASKER

actually I did use the 'double' cast. what really happens is that when I run the program, one out of 4 times, I get cpu=0.015, I get cpu= 0 the other 3 times..
Avatar of madface
madface

clock()/CLOCKS_PER_SEC just shows how long your your app has been running in seconds
clock()/CLOCKS_PER_SEC just shows how long your your app has been running in seconds
so 0 means the application executed really  fast
through  a  in a 6000000 empty loops in your app and see how long it  take
and most of the times my program takes 0 micro seconds to run? (sometimes 1500 micro seconds.)
ASKER CERTIFIED SOLUTION
Avatar of madface
madface

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
the best way to show you is to break in to the debugger.
wait a while
and execute  the printf statement
it should be a larger number



clock() returns how many ticks  have  elapsed  since you  started  the  app

CLOCKS_PER_SECOND is how many ticks there are in a sec

you get  it
try this  code


void
main()
     {

     long i = 0;

     while(i < 60000000)
          {
          i++;
          }
     
     float cl = clock();
     float val = cl/CLOCKS_PER_SEC;
     printf("cpu= %f",val);

     }
Actually, clock() reports CPU time USED, which means how much CPU your program actually uses.  So, if your program is not doing much at all, the number you'll get from clock()/CLOCKS_PER_SEC will be very small (very close to 0).  To see a difference, you may be able to do something more complex in a loop like doing bunch of if's or something.  Good luck.