on master help sign in
Get the silly benchmark framework and AesonEncode cooperating
commit8d99fb86c4d632ce023d6e2f0b74fa90fcb1317b authorBryan O'Sullivan <bos@serpentine.com> dateWed 8 Jan 2014, 21:40 (13 years ago) parent8e32040
1 file changed+6−2
benchmarks/AesonEncode.hs+6−2
benchmarks/AesonEncode.hs+6−2
@@ -4,6 +4,7 @@ import Control.Exception
44import Control.Monad
55import Data.Aeson
66import Data.Attoparsec (IResult(..), parseWith)
7+import Data.Char (isDigit)
78import Data.Time.Clock
89import System.Environment (getArgs)
910import System.IO
@@ -22,7 +23,10 @@ instance NFData L.ByteString where
2223
2324main :: IO ()
2425main = do
25− (cnt:args) <- getArgs
26+ args0 <- getArgs
27+ let (cnt,args) = case args0 of
28+ (i:c:a) | all isDigit i && all isDigit c -> (c,a)
29+ (c:a) -> (c,a)
2630 let count = read cnt :: Int
2731 forM_ args $ \arg -> bracket (openFile arg ReadMode) hClose $ \h -> do
2832 putStrLn $ arg ++ ":"
@@ -39,5 +43,5 @@ main = do
3943 loop 0 r0
4044 delta <- flip diffUTCTime start `fmap` getCurrentTime
4145 let rate = fromIntegral count / realToFrac delta :: Double
42− putStrLn $ " " ++ show delta
46+ putStrLn $ " " ++ cnt ++ " good, " ++ show delta
4347 putStrLn $ " " ++ show (round rate :: Int) ++ " per second"