dhodovsk / source-git / ghc-aeson

Forked from source-git/ghc-aeson 4 years ago
Clone

Blame benchmarks/Escape.hs

Packit 9a2dfb
{-# LANGUAGE PackageImports #-}
Packit 9a2dfb
{-# LANGUAGE ScopedTypeVariables #-}
Packit 9a2dfb
Packit 9a2dfb
module Main (main) where
Packit 9a2dfb
Packit 9a2dfb
import Prelude ()
Packit 9a2dfb
import Prelude.Compat
Packit 9a2dfb
Packit 9a2dfb
import Criterion.Main
Packit 9a2dfb
import qualified "aeson-benchmarks" Data.Aeson.Parser.UnescapeFFI as FFI
Packit 9a2dfb
import qualified "aeson-benchmarks" Data.Aeson.Parser.UnescapePure as Pure
Packit 9a2dfb
Packit 9a2dfb
import qualified Data.ByteString.Char8 as BS
Packit 9a2dfb
Packit 9a2dfb
n :: Int
Packit 9a2dfb
n = 10000
Packit 9a2dfb
Packit 9a2dfb
input :: BS.ByteString
Packit 9a2dfb
input = BS.concat $ replicate n $ BS.pack "\\\""
Packit 9a2dfb
Packit 9a2dfb
main :: IO ()
Packit 9a2dfb
main = defaultMain
Packit 9a2dfb
    [ bench "ffi"  $ whnf FFI.unescapeText input
Packit 9a2dfb
    , bench "pure" $ whnf Pure.unescapeText input
Packit 9a2dfb
    ]