packages feed

bytestring-strict-builder-0.4.2: benchmarks/Main.hs

module Main where

import Prelude
import Criterion.Main
import ByteString.StrictBuilder


main =
  defaultMain [leftAppends, rightAppends]

leftAppends :: Benchmark
leftAppends =
  bench "leftAppends" $ whnf action $! replicate 1000 $ bytes "abc"
  where
    action bytesList =
      builderBytes builder
      where
        builder =
          foldl' (<>) mempty bytesList

rightAppends :: Benchmark
rightAppends =
  bench "rightAppends"  $ whnf action $! replicate 1000 $ bytes "abc"
  where
    action bytesList =
      builderBytes builder
      where
        builder =
          foldr (<>) mempty bytesList