lsm-tree-1.0.0.0: bench/micro/Bench/Database/LSMTree/Internal/Serialise.hs
module Bench.Database.LSMTree.Internal.Serialise (
benchmarks
) where
import Criterion.Main
import Database.LSMTree.Extras.UTxO
import Database.LSMTree.Internal.Serialise.Class
import System.Random
benchmarks :: Benchmark
benchmarks = bgroup "Bench.Database.LSMTree.Internal.Serialise" [
env (pure $ fst $ uniform (mkStdGen 12)) $ \(k :: UTxOKey) ->
bgroup "UTxOKey" [
bench "serialiseKey" $ whnf serialiseKey k
, bench "serialiseKeyRoundtrip" $ whnf serialiseKeyRoundtrip k
]
]
serialiseKeyRoundtrip :: SerialiseKey k => k -> k
serialiseKeyRoundtrip k = deserialiseKey (serialiseKey k)