on master help sign in
warp : Add MagicHash version of readInt to benchmark.
commit98afc8308f43d2cf361c6ba53898d7154fc3763f authorErik de Castro Lopo <erikd@mega-nerd.com> dateTue 24 Jan 2012, 13:57 (15 years ago) parent83384a1
1 file changed+12−6
warp/test/readInt.hs+12−6
warp/test/readInt.hs+12−6
@@ -62,13 +62,19 @@ readInteger = readIntTC
6262
6363
6464-- MagicHash version suggested by Vincent Hanquez.
65−readIntMH :: ByteString -> Int64
66−readIntMH bs =
67− B.foldl' (\i c -> i * 10 + fromIntegral (mhDigitToInt c)) 0
65+readIntMH :: Integral a => ByteString -> a
66+readIntMH s = fromIntegral $ ireadInt64MH s
67+ where
68+ ireadInt64MH :: ByteString -> Int64
69+ ireadInt64MH bs =
70+ B.foldl' (\i c -> i * 10 + fromIntegral (mhDigitToInt c)) 0
6871 $ B.takeWhile C.isDigit bs
6972
73+readInt64MH :: ByteString -> Int64
74+readInt64MH = readIntMH
75+
7076readIntegerMH :: ByteString -> Integer
71−readIntegerMH bs = fromIntegral $ readIntMH bs
77+readIntegerMH = readIntMH
7278
7379data Table = Table !Addr#
7480
@@ -113,7 +119,7 @@ runQuickCheckTests = do
113119 QC.quickCheck (prop_read_show_idempotent readInt)
114120 QC.quickCheck (prop_read_show_idempotent readInt64)
115121 QC.quickCheck (prop_read_show_idempotent readInteger)
116− QC.quickCheck (prop_read_show_idempotent readIntMH)
122+ QC.quickCheck (prop_read_show_idempotent readInt64MH)
117123 QC.quickCheck (prop_read_show_idempotent readIntegerMH)
118124
119125runCriterionTests :: ByteString -> IO ()
@@ -125,7 +131,7 @@ runCriterionTests number =
125131 , bench "readInt" $ nf readInt number
126132 , bench "readInt64" $ nf readInt64 number
127133 , bench "readInteger" $ nf readInteger number
128− , bench "readIntMH" $ nf readIntMH number
134+ , bench "readInt64MH" $ nf readInt64MH number
129135 , bench "readIntegerMH" $ nf readIntegerMH number
130136 ]
131137