about summary refs log tree commit diff
path: root/users/glittershark/xanthous/bench/Xanthous/RandomBench.hs
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2020-06-28T23·35-0400
committerglittershark <grfn@gws.fyi>2020-06-28T23·38+0000
commit7252468b34086e4371872a2fbad9b26941352729 (patch)
treefd183b4880260144eb4c9bf96ec0f6e7b19ae062 /users/glittershark/xanthous/bench/Xanthous/RandomBench.hs
parentbf9b09bd8c63261758140d51f24617c6f05af392 (diff)
feat(xan): Add a benchmark suite r/1112
Change-Id: Id31960e7bc2243dfa53dc5e45b09d8253bdef852
Reviewed-on: https://cl.tvl.fyi/c/depot/+/727
Reviewed-by: glittershark <grfn@gws.fyi>
Diffstat (limited to 'users/glittershark/xanthous/bench/Xanthous/RandomBench.hs')
-rw-r--r--users/glittershark/xanthous/bench/Xanthous/RandomBench.hs32
1 files changed, 32 insertions, 0 deletions
diff --git a/users/glittershark/xanthous/bench/Xanthous/RandomBench.hs b/users/glittershark/xanthous/bench/Xanthous/RandomBench.hs
new file mode 100644
index 0000000000..fae4af92a7
--- /dev/null
+++ b/users/glittershark/xanthous/bench/Xanthous/RandomBench.hs
@@ -0,0 +1,32 @@
+--------------------------------------------------------------------------------
+module Xanthous.RandomBench (benchmark, main) where
+--------------------------------------------------------------------------------
+import Bench.Prelude
+--------------------------------------------------------------------------------
+import Control.Parallel.Strategies
+import Control.Monad.Random
+--------------------------------------------------------------------------------
+import Xanthous.Random
+--------------------------------------------------------------------------------
+
+main :: IO ()
+main = defaultMain [benchmark]
+
+--------------------------------------------------------------------------------
+
+benchmark :: Benchmark
+benchmark = bgroup "Random"
+  [ bgroup "chooseSubset"
+    [ bench "serially" $
+      nf (evalRand $ chooseSubset (0.5 :: Double) [1 :: Int ..1000000])
+         (mkStdGen 1234)
+    ]
+  , bgroup "choose weightedBy"
+    [ bench "serially" $
+      nf (evalRand
+          . choose
+          . weightedBy (\n -> product [n, pred n .. 1])
+          $ [1 :: Int ..1000000])
+         (mkStdGen 1234)
+    ]
+  ]