@@ -13,7 +13,7 @@ import Criterion.Main
1313import Data.Aeson
1414import qualified Data.HashMap.Strict as HM
1515import Data.Proxy (Proxy (..))
16−import Data.RNG
16+import System.Random
1717import qualified Data.Text as T
1818import Database.V1.Bloodhound.Types
1919import Numeric
@@ -24,19 +24,18 @@ import Katip.Scribes.ElasticSearch.Internal (ESV1)
2424
2525main :: IO ()
2626main = do
27− rng <- mkRNG
2827 defaultMain
2928 [
30− mkDocIdBenchmark rng
29+ mkDocIdBenchmark
3130 , deannotateValueBenchmark
3231 ]
3332
3433-------------------------------------------------------------------------------
35−mkDocIdBenchmark :: RNG -> Benchmark
36−mkDocIdBenchmark rng = bgroup "mkDocId"
34+mkDocIdBenchmark :: Benchmark
35+mkDocIdBenchmark = bgroup "mkDocId"
3736 [
3837 bench "mkDocId (randomIO)" $ nfIO (mkDocId (Proxy :: Proxy ESV1))
39− , bench "mkDocId' (shared )" $ nfIO $ mkDocId' rng
38+ , bench "mkDocId' (shared )" $ nfIO mkDocId'
4039 ]
4140
4241
@@ -58,13 +57,11 @@ annotatedValue = Object $ HM.fromList [ ("a::string", String "whatever")
5857 ]
5958
6059-------------------------------------------------------------------------------
61−mkDocId' :: RNG -> IO DocId
62−mkDocId' rng = do
63− is <- withRNG rng $ \gen -> replicateM len $ mk gen
64− return . DocId . T.pack . concatMap (`showHex` "") $ is
60+mkDocId' :: IO DocId
61+mkDocId' = do
62+ is <- replicateM len (randomRIO (0, 15))
63+ return (DocId (T.pack (concatMap (`showHex` "") (is :: [Int]))))
6564 where
6665 len = 32
67− mk :: GenIO -> IO Int
68− mk = uniformR (0,15)
6966
7067deriving instance NFData DocId