on master help sign in
Add record lookup benchmark
ad8b4bcjmite
bench/CompilerBenchmarks.elm+24−20
@@ -4,13 +4,16 @@ import Benchmark
4import Task exposing (Task, andThen)
4import Task exposing (Task, andThen)
5import Text
5import Text
6import Array
6import Array
7+import Random
8+import Time
7
9
8import LargeDictionary
10import LargeDictionary
9import ArrayBench
11import ArrayBench
10import ListBench
12import ListBench
11import AnimateBench
13import AnimateBench
12−import Random
14+import RecordBench
13−import Time
15+
16+
14{-| Compile this with --output=Benchmarks.html to generate
17{-| Compile this with --output=Benchmarks.html to generate
15 a webpage, which runs the benchmarks and shows the results.
18 a webpage, which runs the benchmarks and shows the results.
16-}
19-}
@@ -18,25 +21,26 @@ import Time
18
21
19mySuite =
22mySuite =
20 Benchmark.Suite "My Suite"
23 Benchmark.Suite "My Suite"
24+ [ Benchmark.bench1 "Access 20-field record 200 times" RecordBench.sumRandomElems indices200
21− [ Benchmark.bench1 "Make and sum dict, 10000 elems: " LargeDictionary.addNToDictAndSum 10000
25+ , Benchmark.bench1 "Make and sum dict, 10000 elems: " LargeDictionary.addNToDictAndSum 10000
22− , Benchmark.bench1 "Make and sum dict, 50 elems: " LargeDictionary.addNToDictAndSum 50
26+ , Benchmark.bench1 "Make and sum dict, 50 elems: " LargeDictionary.addNToDictAndSum 50
23−
27+
24− , Benchmark.bench1 "Array native foldr, 500 elems: " ArrayBench.foldrMeanStddev array500
28+ , Benchmark.bench1 "Array native foldr, 500 elems: " ArrayBench.foldrMeanStddev array500
25− , Benchmark.bench1 "Array native foldl, 500 elems: " ArrayBench.foldlMeanStddev array500
29+ , Benchmark.bench1 "Array native foldl, 500 elems: " ArrayBench.foldlMeanStddev array500
26− , Benchmark.bench1 "Array custom foldr, 500 elems: " ArrayBench.customFoldrMeanStddev array500
30+ , Benchmark.bench1 "Array custom foldr, 500 elems: " ArrayBench.customFoldrMeanStddev array500
27− , Benchmark.bench1 "Array custom foldl, 500 elems: " ArrayBench.customFoldrMeanStddev array500
31+ , Benchmark.bench1 "Array custom foldl, 500 elems: " ArrayBench.customFoldrMeanStddev array500
28− , Benchmark.bench3 "Array square nth elem, 500 elems: " ArrayBench.updateNRandomIndices (\x -> x*x) indices200 array500
32+ , Benchmark.bench3 "Array square nth elem, 500 elems: " ArrayBench.updateNRandomIndices (\x -> x*x) indices200 array500
29−
33+
30− , Benchmark.bench1 "List native foldr, 500 elems: " ListBench.foldrMeanStddev list500
34+ , Benchmark.bench1 "List native foldr, 500 elems: " ListBench.foldrMeanStddev list500
31− , Benchmark.bench1 "List native foldl, 500 elems: " ListBench.foldlMeanStddev list500
35+ , Benchmark.bench1 "List native foldl, 500 elems: " ListBench.foldlMeanStddev list500
32− , Benchmark.bench1 "List custom foldr, 500 elems: " ListBench.customFoldrMeanStddev list500
36+ , Benchmark.bench1 "List custom foldr, 500 elems: " ListBench.customFoldrMeanStddev list500
33− , Benchmark.bench1 "List custom foldl, 500 elems: " ListBench.customFoldrMeanStddev list500
37+ , Benchmark.bench1 "List custom foldl, 500 elems: " ListBench.customFoldrMeanStddev list500
34− , Benchmark.bench3 "List square nth elem, 500 elems: " ListBench.updateNRandomIndices (\x -> x*x) indices200 list500
38+ , Benchmark.bench3 "List square nth elem, 500 elems: " ListBench.updateNRandomIndices (\x -> x*x) indices200 list500
35−
39+
36− , Benchmark.bench2 "200 lookups in array of 500 elems: " ArrayBench.randomLookups indices200 (Array.fromList [1 .. 500] )
40+ , Benchmark.bench2 "200 lookups in array of 500 elems: " ArrayBench.randomLookups indices200 (Array.fromList [1 .. 500] )
37− , Benchmark.bench2 "200 lookups in list of 500 elems: " ListBench.randomLookups indices200 ([1 .. 500] )
41+ , Benchmark.bench2 "200 lookups in list of 500 elems: " ListBench.randomLookups indices200 ([1 .. 500] )
38
42
39− , Benchmark.bench1 "30s simulated animation: " AnimateBench.runAnimation timeSteps30s
43+ , Benchmark.bench1 "30s simulated animation @ 30fps: " AnimateBench.runAnimation timeSteps30s
40 ]
44 ]
41
45
42
46