From 5262c8a1ae7984de8d6564b1f94e4f58943a40b7 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Tue, 19 Feb 2013 15:39:50 -0800 Subject: [PATCH] benchmark.timers: adding a timer benchmark. --- extra/benchmark/timers/timers.factor | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 extra/benchmark/timers/timers.factor diff --git a/extra/benchmark/timers/timers.factor b/extra/benchmark/timers/timers.factor new file mode 100644 index 0000000000..e81e536705 --- /dev/null +++ b/extra/benchmark/timers/timers.factor @@ -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 + 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 +