| Deutsch English Français Italiano |
|
<7833daedd900cdce052246e4d5e5b6c9@www.novabbs.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!news.quux.org!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: mhx@iae.nl (mhx)
Newsgroups: comp.lang.forth
Subject: Re: May the numbers speak - supplement
Date: Fri, 13 Jun 2025 08:43:44 +0000
Organization: novaBBS
Message-ID: <7833daedd900cdce052246e4d5e5b6c9@www.novabbs.com>
References: <20129e22c76a2b18b0a745e9499cbd9b@www.novabbs.com> <nnd$673c55b0$2ad8f129@7aad895b352201b7> <cc0a8c7a3216f3ed508bde73fc8bd422@www.novabbs.com> <feed5481a2c6f29340546fbefb23bb31@www.novabbs.com> <37a6f52a3ab1ec533fcf7ef30beb1022@www.novabbs.com> <nnd$673c55b0$2ad8f129@52950e570341256b> <7c15e1538a1604ad3c7a293ae6196da2530cd1a4@i2pn2.org> <87zfed2sbn.fsf@nightsong.com> <87f0b8fea5b562a56a25da80572f94c4@www.novabbs.com> <87o6us3d58.fsf@nightsong.com> <784c4c9e2f2586eb6d7df5210ecca689@www.novabbs.com> <87jz5g39i4.fsf@nightsong.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: i2pn2.org;
logging-data="309314"; mail-complaints-to="usenet@i2pn2.org";
posting-account="J+nubxJRM7ncpF4l6KLO+OONWmFAYJHVJegfwQXJ8vc";
User-Agent: Rocksolid Light
X-Spam-Checker-Version: SpamAssassin 4.0.0
X-Rslight-Posting-User: 4e0dc1fdad1ead10b39e7eb5db19bf73d73e3ab3
X-Rslight-Site: $2y$10$Y/.uZBESyKw4o1uYxAyLaeMxFjvAPaJFkDWst5jr/vehvW1Y.7mWm
On Thu, 12 Jun 2025 22:01:07 +0000, Paul Rubin wrote:
> mhx@iae.nl (mhx) writes:
>> iSPICE> TEST TEST TEST TEST
>> \ dtimescan : 2515 clock ticks elapsed, 45296
>> \ timestrscan : 419 clock ticks elapsed, 45296
>> \ HMS : 419 clock ticks elapsed, 45296
>> It makes no difference. Whatever is holding it down must
>> be quite severe.
>
> Is dtimescan the one that uses double word arithmetic for 16 bit
> processors? It's doing more stuff, I would think. Weird that it
> catches up after a few tries. Cache warming?
The TICKS? word apparently can't be trusted under Windows 11. This
is better:
#2000000 VALUE #iters
CREATE num ," 12:34:56"
: .SECS MS? #1000000 #iters 3 * */ ." / " . ." ns per iteration." ;
: TEST2 ( -- )
CR
CR ." \ dtimescan : " TIMER-RESET num C@+
#iters 0 ?DO 2DUP dtimescan 2DROP
2DUP dtimescan 2DROP
2DUP dtimescan 2DROP LOOP dtimescan UD.
SECS
CR ." \ timestrscan : " TIMER-RESET num C@+
#iters 0 ?DO 2DUP timestrscan 2DROP
2DUP timestrscan 2DROP
2DUP timestrscan 2DROP LOOP timestrscan UD.
SECS
CR ." \ HMS : " TIMER-RESET num C@+
#iters 0 ?DO 2DUP hms DROP
2DUP hms DROP
2DUP hms DROP LOOP hms .
SECS
CR ." \ HMS2 : " TIMER-RESET num C@+
#iters 0 ?DO 2DUP hms2 3DROP
2DUP hms2 3DROP
2DUP hms2 3DROP LOOP hms2 ROT . SWAP . .
SECS ;
CLS TEST2 TEST2 TEST2 TEST2
\ dtimescan : 45296 / 15 ns per iteration.
\ timestrscan : 45296 / 13 ns per iteration.
\ HMS : 45296 / 5 ns per iteration.
\ HMS2 : 12 34 56 / 53 ns per iteration.
\ dtimescan : 45296 / 15 ns per iteration.
\ timestrscan : 45296 / 14 ns per iteration.
\ HMS : 45296 / 5 ns per iteration.
\ HMS2 : 12 34 56 / 53 ns per iteration.
\ dtimescan : 45296 / 16 ns per iteration.
\ timestrscan : 45296 / 14 ns per iteration.
\ HMS : 45296 / 5 ns per iteration.
\ HMS2 : 12 34 56 / 53 ns per iteration.
\ dtimescan : 45296 / 15 ns per iteration.
\ timestrscan : 45296 / 14 ns per iteration.
\ HMS : 45296 / 5 ns per iteration.
\ HMS2 : 12 34 56 / 53 ns per iteration. ok
HMS is three times faster than dtimescan and timestrscan, while
HMS2 is 3.5 times slower (as expected).
In practice, I'd use some variant of hms2.
-marcel