delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2013/07/07/16:36:59

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
Date: Sun, 7 Jul 2013 16:36:49 -0400
Message-Id: <201307072036.r67KanNk031567@envy.delorie.com>
From: DJ Delorie <dj AT delorie DOT com>
To: djgpp AT delorie DOT com
In-reply-to: <fd60497c-48ca-47ee-aefa-191f026fd3c1@googlegroups.com>
(lordwilliams1972 AT gmail DOT com)
Subject: Re: CLOCKS_PER_SEC of time.h doesn't work to prove it is a value for one second
References: <fd60497c-48ca-47ee-aefa-191f026fd3c1 AT googlegroups DOT com>
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

>   ticks1=clock();
>   ticks2=ticks1;
>   while((ticks2/CLOCKS_PER_SEC-ticks1/CLOCKS_PER_SEC)<1)
>     ticks2=clock();

What you should do is write a djgpp program that prints clock()'s
value to the screen, and time it from 0 to 9100 clock()s with a
stopwatch.

All your code is doing is incrementing ticks2 (by 5) until it's
CLOCKS_PER_SEC more than ticks1, modulo whatever ticks1 started at.
You could have done this and gotten similar results:

>   ticks1=0
>   ticks2=ticks1;
>   while((ticks2/CLOCKS_PER_SEC-ticks1/CLOCKS_PER_SEC)<1)
>     ticks2 += 5;

Note that, because of the "* 5", the value you get could be off by as
much as 4 due to the fact that clock() will *always* return a multiple
of 5.  However, the increment from one clock() to the next clock() is
not always the *same* multiple of 5.

Try using "< 100" instead of "< 1" in your code and see what happens.
That will give you an average value, not one test value.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019