Skip to content

Commit 29e604e

Browse files
committed
benchmarking
2 parents c93cd17 + ec1bb3c commit 29e604e

File tree

5 files changed

+2885
-2
lines changed

5 files changed

+2885
-2
lines changed

bench/Bench/Data/List.purs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
module Bench.Data.List where
2+
3+
import Prelude
4+
import Control.Monad.Eff (Eff)
5+
import Control.Monad.Eff.Console (CONSOLE, log)
6+
import Performance.Minibench (bench)
7+
8+
import Data.List as L
9+
10+
benchList :: Eff (console :: CONSOLE) Unit
11+
benchList = do
12+
log "map"
13+
log "---"
14+
benchMap
15+
16+
where
17+
18+
benchMap = do
19+
let nats = L.range 0 999999
20+
mapFn = map (_ + 1)
21+
list1000 = L.take 1000 nats
22+
list2000 = L.take 2000 nats
23+
list5000 = L.take 5000 nats
24+
list10000 = L.take 10000 nats
25+
list100000 = L.take 100000 nats
26+
27+
log "map: empty list"
28+
let emptyList = L.Nil
29+
bench \_ -> mapFn emptyList
30+
31+
log "map: singleton list"
32+
let singletonList = L.Cons 0 L.Nil
33+
bench \_ -> mapFn singletonList
34+
35+
log $ "map: list (" <> show (L.length list1000) <> " elems)"
36+
bench \_ -> mapFn list1000
37+
38+
log $ "map: list (" <> show (L.length list2000) <> " elems)"
39+
bench \_ -> mapFn list2000
40+
41+
log $ "map: list (" <> show (L.length list5000) <> " elems)"
42+
bench \_ -> mapFn list5000
43+
44+
log $ "map: list (" <> show (L.length list10000) <> " elems)"
45+
bench \_ -> mapFn list10000
46+
47+
log $ "map: list (" <> show (L.length list100000) <> " elems)"
48+
bench \_ -> mapFn list100000

bench/Main.purs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
module Bench.Main where
2+
3+
import Prelude
4+
import Control.Monad.Eff (Eff)
5+
import Control.Monad.Eff.Console (CONSOLE, log)
6+
7+
import Bench.Data.List (benchList)
8+
9+
main :: Eff (console :: CONSOLE) Unit
10+
main = do
11+
log "List"
12+
log "===="
13+
benchList

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"purescript-arrays": "^4.0.0",
3232
"purescript-assert": "^3.0.0",
3333
"purescript-console": "^3.0.0",
34-
"purescript-math": "^2.0.0"
34+
"purescript-math": "^2.0.0",
35+
"purescript-minibench": "^1.0.1"
3536
}
3637
}

0 commit comments

Comments
 (0)