@@ -4,13 +4,16 @@ import Benchmark
44import Task exposing (Task, andThen)
55import Text
66import Array
7+import Random
8+import Time
79
810import LargeDictionary
911import ArrayBench
1012import ListBench
1113import AnimateBench
12−import Random
13−import Time
14+import RecordBench
15+
16+
1417{-| Compile this with --output=Benchmarks.html to generate
1518 a webpage, which runs the benchmarks and shows the results.
1619-}
@@ -18,25 +21,26 @@ import Time
1821
1922mySuite =
2023 Benchmark.Suite "My Suite"
21− [ Benchmark.bench1 "Make and sum dict, 10000 elems: " LargeDictionary.addNToDictAndSum 10000
22− , Benchmark.bench1 "Make and sum dict, 50 elems: " LargeDictionary.addNToDictAndSum 50
23−
24− , Benchmark.bench1 "Array native foldr, 500 elems: " ArrayBench.foldrMeanStddev array500
25− , Benchmark.bench1 "Array native foldl, 500 elems: " ArrayBench.foldlMeanStddev array500
26− , Benchmark.bench1 "Array custom foldr, 500 elems: " ArrayBench.customFoldrMeanStddev array500
27− , 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
29−
30− , Benchmark.bench1 "List native foldr, 500 elems: " ListBench.foldrMeanStddev list500
31− , Benchmark.bench1 "List native foldl, 500 elems: " ListBench.foldlMeanStddev list500
32− , Benchmark.bench1 "List custom foldr, 500 elems: " ListBench.customFoldrMeanStddev list500
33− , 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
35−
36− , 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] )
24+ [ Benchmark.bench1 "Access 20-field record 200 times" RecordBench.sumRandomElems indices200
25+ , Benchmark.bench1 "Make and sum dict, 10000 elems: " LargeDictionary.addNToDictAndSum 10000
26+ , Benchmark.bench1 "Make and sum dict, 50 elems: " LargeDictionary.addNToDictAndSum 50
27+
28+ , Benchmark.bench1 "Array native foldr, 500 elems: " ArrayBench.foldrMeanStddev array500
29+ , Benchmark.bench1 "Array native foldl, 500 elems: " ArrayBench.foldlMeanStddev array500
30+ , Benchmark.bench1 "Array custom foldr, 500 elems: " ArrayBench.customFoldrMeanStddev array500
31+ , Benchmark.bench1 "Array custom foldl, 500 elems: " ArrayBench.customFoldrMeanStddev array500
32+ , Benchmark.bench3 "Array square nth elem, 500 elems: " ArrayBench.updateNRandomIndices (\x -> x*x) indices200 array500
33+
34+ , Benchmark.bench1 "List native foldr, 500 elems: " ListBench.foldrMeanStddev list500
35+ , Benchmark.bench1 "List native foldl, 500 elems: " ListBench.foldlMeanStddev list500
36+ , Benchmark.bench1 "List custom foldr, 500 elems: " ListBench.customFoldrMeanStddev list500
37+ , Benchmark.bench1 "List custom foldl, 500 elems: " ListBench.customFoldrMeanStddev list500
38+ , Benchmark.bench3 "List square nth elem, 500 elems: " ListBench.updateNRandomIndices (\x -> x*x) indices200 list500
39+
40+ , Benchmark.bench2 "200 lookups in array of 500 elems: " ArrayBench.randomLookups indices200 (Array.fromList [1 .. 500] )
41+ , Benchmark.bench2 "200 lookups in list of 500 elems: " ListBench.randomLookups indices200 ([1 .. 500] )
3842
39− , Benchmark.bench1 "30s simulated animation: " AnimateBench.runAnimation timeSteps30s
43+ , Benchmark.bench1 "30s simulated animation @ 30fps: " AnimateBench.runAnimation timeSteps30s
4044 ]
4145
4246