Plan 9 from Bell Labs’s /usr/web/sources/contrib/fgb/root/sys/src/cmd/4th/examples/bench/prims.4th

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


\ Based on a benchmark by Phil Burk

[needs lib/timer.4th]

\ benchmark primitives
100000000 constant #do

create data_@c data_@c ,
variable data_@ data_@ data_@ !
: foo ( noop ) ;

: stopwatch depth 1- 0 ?do drop loop .elapsed cr timer-reset ;

: t1           #do 0      do                         loop ;
: t2  23 45    #do 0      do  swap                   loop ;
: t3  23       #do 0      do  dup drop               loop ;
: t4  23 45    #do 0      do  over drop              loop ;
: t5  23       #do 0      do  dup +                  loop ;
: t6  23       #do 0      do  >r r>                  loop ;
: t7  23 45 67 #do 0      do  rot                    loop ;
: t8  23       #do 0      do  2*                     loop ;
: t9  data_@   #do 0      do  @                      loop ;
: t10 data_@c  #do 0      do  @c                     loop ;
: t11          #do 0      do  foo                    loop ;
: t12          #do 0      do  23 drop                loop ;
: t13 data_@   #do 0      do  dup dup !              loop ;

timer-reset
." PRIMITIVES" cr
t1
." empty         : " stopwatch
t2
." swap          : " stopwatch
t3
." dup drop      : " stopwatch
t4
." over drop     : " stopwatch
t5
." dup +         : " stopwatch
t6
." >r r>         : " stopwatch
t7
." rot           : " stopwatch
t8
." 2*            : " stopwatch
t9
." @             : " stopwatch
t10
." @c            : " stopwatch
t11
." call          : " stopwatch
t12
." 23 drop       : " stopwatch
t13
." dup dup !     : " stopwatch drop





Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].