@@ -4,13 +4,16 @@ import Benchmark
4import Task exposing (Task, andThen)
4import Task exposing (Task, andThen)
6import Array
6import Array
8import LargeDictionary
10import LargeDictionary
9import ArrayBench
11import ArrayBench
10import ListBench
12import ListBench
11import AnimateBench
13import AnimateBench
12−import Random
14+import RecordBench
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.
@@ -18,25 +21,26 @@ import Time
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
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
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
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] )
39− , Benchmark.bench1 "30s simulated animation: " AnimateBench.runAnimation timeSteps30s
43+ , Benchmark.bench1 "30s simulated animation @ 30fps: " AnimateBench.runAnimation timeSteps30s