packages feed

lz4-0.2: bench/Bench1.hs

module Main
       ( main -- :: IO ()
       ) where
import Prelude hiding (words)

import qualified Data.ByteString           as S
import qualified Codec.Compression.Snappy  as Snappy
import qualified Codec.Compression.QuickLZ as QuickLZ
import qualified Codec.Compression.LZ4     as LZ4

import Criterion.Main
import Criterion.Config
import Control.DeepSeq (NFData)


instance NFData S.ByteString


main :: IO ()
main = do
  words <- S.readFile "/usr/share/dict/words"

  let cfg = defaultConfig { cfgPerformGC = ljust True }
  defaultMainWith cfg (return ())
    [ bgroup "/usr/share/dict/words"
      [ bench "snappy"    $ nf Snappy.compress words
      , bench "quicklz"   $ nf QuickLZ.compress words
      , bench "lz4"       $ nf LZ4.compress words
      , bench "lz4 HC"    $ nf LZ4.compressHC words
      , bench "lz4 ultra" $ nf LZ4.compressPlusHC words
      ]
    ]