benchmark.timers: adding a timer benchmark.
parent
10a4413bec
commit
5262c8a1ae
|
@ -0,0 +1,25 @@
|
||||||
|
USING: concurrency.flags kernel math namespaces timers ;
|
||||||
|
IN: benchmark.timers
|
||||||
|
|
||||||
|
SYMBOL: loop-flag
|
||||||
|
SYMBOL: loop-count
|
||||||
|
SYMBOL: loop-max
|
||||||
|
|
||||||
|
: inner-loop ( -- )
|
||||||
|
loop-count counter loop-max get-global > [
|
||||||
|
loop-flag get-global raise-flag
|
||||||
|
] when ;
|
||||||
|
|
||||||
|
: outer-loop ( n -- )
|
||||||
|
loop-max set-global
|
||||||
|
0 loop-count set-global
|
||||||
|
<flag> loop-flag set-global
|
||||||
|
[ inner-loop ] 1 every
|
||||||
|
loop-flag get-global wait-for-flag
|
||||||
|
stop-timer ;
|
||||||
|
|
||||||
|
: timers-benchmark ( -- )
|
||||||
|
20,000 [ outer-loop ] [ loop-max get-global assert= ] bi ;
|
||||||
|
|
||||||
|
MAIN: timers-benchmark
|
||||||
|
|
Loading…
Reference in New Issue