Skip to content

Commit 28e41af

Browse files
authored
Merge pull request #142 from haskell-works/remove-unnecessary-benchmarks
Remove unnecessary benchmarks
2 parents 56a5a6e + 76f04c6 commit 28e41af

File tree

1 file changed

+0
-64
lines changed

1 file changed

+0
-64
lines changed

bench/Main.hs

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,10 @@
1-
{-# LANGUAGE BangPatterns #-}
21
{-# LANGUAGE ScopedTypeVariables #-}
32

43
module Main where
54

6-
import Control.Monad
75
import Criterion.Main
8-
import Data.List
9-
import Data.Semigroup ((<>))
10-
import Data.Word
11-
import Foreign
12-
import HaskellWorks.Data.Json.Standard.Cursor.Internal.Blank
13-
import HaskellWorks.Data.Json.Standard.Cursor.Internal.MakeIndex
14-
import System.IO.MMap
15-
16-
import qualified Data.ByteString as BS
17-
import qualified Data.ByteString.Internal as BSI
18-
import qualified HaskellWorks.Data.Json.Standard.Cursor.Fast as FAST
19-
import qualified HaskellWorks.Data.Json.Standard.Cursor.Slow as SLOW
20-
import qualified System.Directory as IO
21-
22-
setupEnvJson :: FilePath -> IO BS.ByteString
23-
setupEnvJson filepath = do
24-
(fptr :: ForeignPtr Word8, offset, size) <- mmapFileForeignPtr filepath ReadOnly Nothing
25-
let !bs = BSI.fromForeignPtr (castForeignPtr fptr) offset size
26-
return bs
27-
28-
jsonToInterestBits3 :: [BS.ByteString] -> [BS.ByteString]
29-
jsonToInterestBits3 = blankedJsonToInterestBits . blankJson
30-
31-
makeBenchBlankJson :: IO [Benchmark]
32-
makeBenchBlankJson = do
33-
entries <- IO.listDirectory "corpus/bench"
34-
let files = ("corpus/bench/" ++) <$> (".json" `isSuffixOf`) `filter` entries
35-
benchmarks <- forM files $ \file -> return
36-
[ env (setupEnvJson file) $ \bs -> bgroup file
37-
[ bench "Run blankJson" (whnf (BS.concat . blankJson) [bs])
38-
]
39-
]
40-
41-
return (join benchmarks)
42-
43-
makeBenchJsonToInterestBits :: IO [Benchmark]
44-
makeBenchJsonToInterestBits = do
45-
entries <- IO.listDirectory "corpus/bench"
46-
let files = ("corpus/bench/" ++) <$> (".json" `isSuffixOf`) `filter` entries
47-
benchmarks <- forM files $ \file -> return
48-
[ env (setupEnvJson file) $ \bs -> bgroup file
49-
[ bench "Run blankJson" (whnf (BS.concat . jsonToInterestBits3) [bs])
50-
]
51-
]
52-
53-
return (join benchmarks)
54-
55-
makeBenchMakeCursor :: IO [Benchmark]
56-
makeBenchMakeCursor = do
57-
entries <- IO.listDirectory "corpus/bench"
58-
let files = ("corpus/bench/" ++) <$> (".json" `isSuffixOf`) `filter` entries
59-
benchmarks <- forM files $ \file -> return
60-
[ env (setupEnvJson file) $ \bs -> bgroup file
61-
[ bench "Run slow make cursor" (whnf SLOW.fromByteString bs)
62-
, bench "Run fast make cursor" (whnf FAST.fromByteString bs)
63-
]
64-
]
65-
66-
return (join benchmarks)
676

687
main :: IO ()
698
main = do
709
benchmarks <- fmap mconcat $ sequence $ mempty
71-
<> [makeBenchBlankJson]
72-
<> [makeBenchJsonToInterestBits]
73-
<> [makeBenchMakeCursor]
7410
defaultMain benchmarks

0 commit comments

Comments
 (0)