82ecd61f5c
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809 Autosubmit: aspen <root@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
32 lines
1.1 KiB
Haskell
32 lines
1.1 KiB
Haskell
--------------------------------------------------------------------------------
|
|
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)
|
|
]
|
|
]
|