diff options
author | John MacFarlane <jgm@berkeley.edu> | 2010-12-30 15:32:34 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2010-12-30 15:32:34 -0800 |
commit | df0eecfc0e655c5cd78dbbd94273d0b7f9af9451 (patch) | |
tree | a6d34f960897762569d60f1ff71f2adef1a6c276 | |
parent | e4dedad1c0f435cbdc854a851e2df5cbc668c7b7 (diff) | |
download | pandoc-df0eecfc0e655c5cd78dbbd94273d0b7f9af9451.tar.gz |
More accurate benchmark for normalize.
-rw-r--r-- | Benchmark.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Benchmark.hs b/Benchmark.hs index 0f3520fde..1fd787945 100644 --- a/Benchmark.hs +++ b/Benchmark.hs @@ -2,6 +2,7 @@ import Text.Pandoc import Text.Pandoc.Shared (readDataFile, normalize) import Criterion.Main import Data.List (isSuffixOf) +import Text.JSON.Generic readerBench :: Pandoc -> (String, ParserState -> String -> Pandoc) @@ -30,13 +31,15 @@ writerBench doc (name, writer) = bench (name ++ " writer") $ nf writerWrapText = True , writerLiterateHaskell = "+lhs" `isSuffixOf` name }) doc -normalizeBench :: Pandoc -> Benchmark -normalizeBench doc = bench "normalize" $ whnf normalize doc +normalizeBench :: Pandoc -> [Benchmark] +normalizeBench doc = [ bench "normalize - with" $ nf (encodeJSON . normalize) doc + , bench "normalize - without" $ nf encodeJSON doc + ] main = do inp <- readDataFile (Just ".") "README" let ps = defaultParserState{ stateSmart = True } let doc = readMarkdown ps inp let readerBs = map (readerBench doc) readers - defaultMain $ map (writerBench doc) writers ++ readerBs ++ [normalizeBench doc] + defaultMain $ map (writerBench doc) writers ++ readerBs ++ normalizeBench doc |