ttrie-0.1.0.0: benchmarks/Bench1.hs
module Main where
import BenchGen
import Common
import System.Environment
import Text.Printf
main :: IO ()
main = do
(arg1:arg2:arg3:arg4:args) <- getArgs
printf "threads = %s\nnumTransactions = %s\nsizes = %s\nops = %s\n" arg1 arg2 arg3 arg4
let threads = read arg1
numTransactions = read arg2
sizes = mkTable $ read arg3
(inserts,lookups,updates,deletes) = read arg4
config = Config
{ operations = mkTable [ (Insert, inserts + updates)
, (Lookup, lookups)
, (Delete, deletes)
]
, keys = \op -> case op of
Insert -> mkTable [(remember key, inserts), (remember (reuse key), updates)]
Lookup -> mkTable [(key, 0), (reuse key, 1)]
Delete -> mkTable [(forget key, 0), (forget (reuse key), 1)]
}
withArgs args $ runAll threads numTransactions sizes config