@@ -13,7 +13,7 @@ import Criterion.Main
13import Data.Aeson
13import Data.Aeson
14import qualified Data.HashMap.Strict as HM
14import qualified Data.HashMap.Strict as HM
15import Data.Proxy (Proxy (..))
15import Data.Proxy (Proxy (..))
16−import Data.RNG
16+import System.Random
17import qualified Data.Text as T
17import qualified Data.Text as T
18import Database.V1.Bloodhound.Types
18import Database.V1.Bloodhound.Types
19import Numeric
19import Numeric
@@ -24,19 +24,18 @@ import Katip.Scribes.ElasticSearch.Internal (ESV1)
25main :: IO ()
25main :: IO ()
28 defaultMain
27 defaultMain
30− mkDocIdBenchmark rng
29+ mkDocIdBenchmark
31 , deannotateValueBenchmark
30 , deannotateValueBenchmark
34-------------------------------------------------------------------------------
33-------------------------------------------------------------------------------
35−mkDocIdBenchmark :: RNG -> Benchmark
34+mkDocIdBenchmark :: Benchmark
36−mkDocIdBenchmark rng = bgroup "mkDocId"
35+mkDocIdBenchmark = bgroup "mkDocId"
38 bench "mkDocId (randomIO)" $ nfIO (mkDocId (Proxy :: Proxy ESV1))
37 bench "mkDocId (randomIO)" $ nfIO (mkDocId (Proxy :: Proxy ESV1))
39− , bench "mkDocId' (shared )" $ nfIO $ mkDocId' rng
38+ , bench "mkDocId' (shared )" $ nfIO mkDocId'
@@ -58,13 +57,11 @@ annotatedValue = Object $ HM.fromList [ ("a::string", String "whatever")
60-------------------------------------------------------------------------------
59-------------------------------------------------------------------------------
61−mkDocId' :: RNG -> IO DocId
60+mkDocId' :: IO DocId
62−mkDocId' rng = do
61+mkDocId' = do
63− is <- withRNG rng $ \gen -> replicateM len $ mk gen
62+ is <- replicateM len (randomRIO (0, 15))
64− return . DocId . T.pack . concatMap (`showHex` "") $ is
63+ return (DocId (T.pack (concatMap (`showHex` "") (is :: [Int]))))
67− mk :: GenIO -> IO Int
70deriving instance NFData DocId
67deriving instance NFData DocId