Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
tree: 35ec3cfa49
Fetching contributors…

Cannot retrieve contributors at this time

57 lines (54 sloc) 2.584 kB
{-# LANGUAGE OverloadedStrings #-}
import Criterion.Main
import Data.Text.Format
import qualified Data.Text as T
import qualified Data.Text.Lazy as L
main = defaultMain [
bgroup "arity" [
bench "0" $ nf (format "hi") ()
, bench "1" $ nf (format "hi {}") (Only $ T.pack "mom")
, bench "2" $ nf (format "hi {}, how are {}")
(T.pack "mom", T.pack "you")
, bench "3" $ nf (format "hi {}, how are {} keeping {}")
(T.pack "mom", T.pack "you", T.pack "now")
, bench "4" $ nf (format "hi {}, {} - how are {} keeping {}")
(T.pack "mom", T.pack "hey", T.pack "you", T.pack "now")
]
, bgroup "types" [
bench "unit" $ nf (format "hi") ()
, bgroup "int" [
bench "small" $ nf (format "hi {}") (Only (1::Int))
, bench "medium" $ nf (format "hi {}") (Only (1234::Int))
, bench "large" $ nf (format "hi {}") (Only (0x7fffffff::Int))
]
, bgroup "float" [
bench "small" $ nf (format "hi {}") (Only (1::Float))
, bench "medium" $ nf (format "hi {}") (Only (pi::Float))
, bench "large" $ nf (format "hi {}") (Only (pi*1e37::Float))
]
, bgroup "double" [
bench "small" $ nf (format "hi {}") (Only (1::Double))
, bench "medium" $ nf (format "hi {}") (Only (pi::Double))
, bench "large" $ nf (format "hi {}") (Only (pi*1e37::Double))
]
, bgroup "string" [
bench "small" $ nf (format "hi {}") (Only ("mom" :: String))
, bench "medium" $ nf (format "hi {}")
(Only . concat . replicate 64 $ ("mom" :: String))
, bench "large" $ nf (format "hi {}")
(Only . concat . replicate 1024 $ ("mom" :: String))
]
, bgroup "text" [
bench "small" $ nf (format "hi {}") (Only (T.pack "mom"))
, bench "medium" $ nf (format "hi {}") (Only (T.replicate 64 "mom"))
, bench "large" $ nf (format "hi {}") (Only (T.replicate 1024 "mom"))
]
, bgroup "lazytext" [
bench "small" $ nf (format "hi {}") (Only (L.pack "mom"))
, bench "medium" $ nf (format "hi {}")
(Only . L.fromChunks . replicate 64 $ "mom")
, bench "large" $ nf (format "hi {}")
(Only . L.fromChunks . replicate 1024 $ "mom")
]
]
]
Jump to Line
Something went wrong with that request. Please try again.