packages feed

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)