module Main where import Criterion.Main import qualified Data.Map.Strict as DM import Database.Graph.HGraphStorage.HackageTest import Database.Graph.HGraphStorage.Types import Data.Default (def) import System.IO (BufferMode(..)) main :: IO() main = do -- convertHack g <- buildHackageGraph let _ = g `seq` () putStrLn (show (length $ DM.keys g) ++ " packages") defaultMain [--bench "Write Hackage Default Buffering" $ nfIO $ writeGraph def g bench "Write Hackage No Buffering" $ nfIO $ writeGraph def{gsMainBuffering = Just NoBuffering} g --,bench "Write Hackage Buffering 1024" $ nfIO $ writeGraph def{gsMainBuffering = Just $ BlockBuffering $ Just 1024} g ,bench "Write Hackage Buffering 4096" $ nfIO $ writeGraph def{gsMainBuffering = Just $ BlockBuffering $ Just 4096} g --,bench "Write Hackage Buffering 8192" $ nfIO $ writeGraph def{gsMainBuffering = Just $ BlockBuffering $ Just 8192} g ,bench "Index Lookup" $ nfIO $ nameIndex g ,bench "Index Lookup+One Step query" $ nfIO yesodQuery]