lz4-hs-0.1.2.0: bench/Bench.hs
module Main (main) where
import Codec.Lz4
import Criterion.Main
import qualified Data.ByteString.Lazy as BSL
import System.FilePath ((</>))
import System.IO.Temp (withSystemTempDirectory)
decompressDump :: FilePath -> FilePath -> IO ()
decompressDump dir fp' =
BSL.writeFile (dir </> "dump.tar") =<<
(decompress <$> BSL.readFile fp')
compressDump :: FilePath -> FilePath -> IO ()
compressDump dir fp' =
BSL.writeFile (dir </> "dump.tar.lz4") =<<
(compress <$> BSL.readFile fp')
main :: IO ()
main =
withSystemTempDirectory "lz4" $ \dir ->
defaultMain [ bgroup "decompress/dump"
[ bench "lz4" $ nfIO (decompressDump dir "valgrind-3.15.0.tar.lz4")
, bench "lz4" $ nfIO (decompressDump dir "llvm-9.0.0.src.tar.lz4")
]
, env lz4Files $ \ ~(v, l) ->
bgroup "decompress"
[ bench "lz4" $ nf decompress v
, bench "lz4" $ nf decompress l
]
, bgroup "compress/dump"
[ bench "lz4" $ nfIO (compressDump dir "valgrind-3.15.0.tar")
, bench "lz4" $ nfIO (compressDump dir "llvm-9.0.0.src.tar")
]
]
where lz4Files = (,) <$> valgrindFile <*> llvmFile
valgrindFile = BSL.readFile "valgrind-3.15.0.tar.lz4"
llvmFile = BSL.readFile "llvm-9.0.0.src.tar.lz4"