Source

text / benchmarks / haskell / Benchmarks / Builder.hs

Diff from to

File benchmarks/haskell/Benchmarks/Builder.hs

 import qualified Data.Text.Lazy as LT
 import qualified Data.Text.Lazy.Builder as LTB
 import qualified Data.Text.Lazy.Builder.Int as Int
+import Data.Int (Int64)
 
 benchmark :: IO Benchmark
 benchmark = return $ bgroup "Builder"
       [ bgroup "Decimal"
         [ bgroup "Positive" .
           flip map numbers $ \n ->
-          (bench (show n) $ nf (LTB.toLazyText . Int.decimal) n)
+          (bench (show (length (show n))) $ nf (LTB.toLazyText . Int.decimal) n)
         , bgroup "Negative" .
           flip map numbers $ \m ->
           let n = negate m in
-          (bench (show n) $ nf (LTB.toLazyText . Int.decimal) n)
+          (bench (show (length (show n))) $ nf (LTB.toLazyText . Int.decimal) n)
         ]
       ]
     ]
   where
-    numbers = [6,1,14,93,500,415,9688,2865,10654,30214,795659,829056,6207351,
-               5608880,33929478,96076286,370106126,731223504] :: [Int]
+    numbers :: [Int64]
+    numbers = [
+      6, 14, 500, 9688, 10654, 620735, 5608880, 37010612,
+      731223504, 5061580596, 24596952933, 711732309084, 2845910093839,
+      54601756118340, 735159434806159, 3619097625502435, 95777227510267124,
+      414944309510675693, 8986407456998704019
+     ]
 
 texts :: [T.Text]
 texts = take 200000 $ cycle ["foo", "λx", "由の"]