anothercto
asked on
clock() not working
#include <time.h>
....
printf("cpu= %g",clock()/CLOCKS_PER_SEC );
.....
output: cpu= 0
....
printf("cpu= %g",clock()/CLOCKS_PER_SEC
.....
output: cpu= 0
FYI, the way you did it, you're doing an integer division. So, if clock() < CLOCKS_PER_SEC, the result is '0'...
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..
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
through a in a 6000000 empty loops in your app and see how long it take
ASKER
and most of the times my program takes 0 micro seconds to run? (sometimes 1500 micro seconds.)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
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
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);
}
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.
printf("cpu= %f",((double) clock())/CLOCKS_PER_SEC);