packages feed

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