rrb-vector-0.2.2.0: bench/Traverse.hs
{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE MagicHash #-}
{-# LANGUAGE NumericUnderscores #-}
{-# LANGUAGE UnboxedTuples #-}
import Control.Monad (join)
import Data.Foldable
import Data.Functor ((<&>))
import qualified Data.RRBVector as RRB
import Test.Tasty.Bench
default (Int)
main :: IO ()
main = defaultMain $ [10, 100, 1_000, 10_000, 100_000] <&> \n ->
let !v = RRB.fromList [1 .. n]
in bgroup (show n)
[ bench "Vector" $ whnf (join (<>)) v
, bench "List" $ whnf (join (\xs ys -> RRB.fromList (toList xs <> toList ys))) v
]