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