clock() not working

#include <time.h>

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

output: cpu= 0
anotherctoAsked:
Who is Participating?
 
madfaceConnect With a Mentor Commented:
so 0 means the application executed really  fast
through  a  in a 6000000 empty loops in your app and see how long it  take
0
 
jkrCommented:
Make it read

printf("cpu= %f",((double) clock())/CLOCKS_PER_SEC);
0
 
jkrCommented:
FYI, the way you did it, you're doing an integer division. So, if clock() < CLOCKS_PER_SEC, the result is '0'...
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
anotherctoAuthor Commented:
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..
0
 
madfaceCommented:
clock()/CLOCKS_PER_SEC just shows how long your your app has been running in seconds
0
 
madfaceCommented:
clock()/CLOCKS_PER_SEC just shows how long your your app has been running in seconds
0
 
madfaceCommented:
so 0 means the application executed really  fast
through  a  in a 6000000 empty loops in your app and see how long it  take
0
 
anotherctoAuthor Commented:
and most of the times my program takes 0 micro seconds to run? (sometimes 1500 micro seconds.)
0
 
madfaceCommented:
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
0
 
madfaceCommented:
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);

     }
0
 
dchan_4544Commented:
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.

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.