Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 508
  • Last Modified:

clock() not working

#include <time.h>

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

output: cpu= 0
0
anothercto
Asked:
anothercto
  • 6
  • 2
  • 2
  • +1
1 Solution
 
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
 
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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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:
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
 
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

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 6
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now