annotate benchmark/benchmarks.jl @ 1171:87bc91def1ff tooling/benchmarks

Start setting things up
author Jonatan Werpers <jonatan@werpers.com>
date Tue, 24 Jan 2023 21:57:24 +0100
parents
children 34446df5733f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1171
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 using BenchmarkTools
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
2 using Random
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
3
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
4 const SUITE = BenchmarkGroup()
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
6 SUITE["utf8"] = BenchmarkGroup(["string", "unicode"])
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
7 teststr = String(join(rand(MersenneTwister(1), 'a':'d', 10^4)))
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
8 SUITE["utf8"]["replace"] = @benchmarkable replace($teststr, "a" => "b")
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9 SUITE["utf8"]["join"] = @benchmarkable join($teststr, $teststr)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
10 SUITE["utf8"]["plots"] = BenchmarkGroup()
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
11
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 SUITE["trigonometry"] = BenchmarkGroup(["math", "triangles"])
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
13 SUITE["trigonometry"]["circular"] = BenchmarkGroup()
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
14 for f in (sin, cos, tan)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 for x in (0.0, pi)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
16 SUITE["trigonometry"]["circular"][string(f), x] = @benchmarkable ($f)($x)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
17 end
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
18 end
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
19
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
20 SUITE["trigonometry"]["hyperbolic"] = BenchmarkGroup()
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
21 for f in (sin, cos, tan)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
22 for x in (0.0, pi)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
23 SUITE["trigonometry"]["hyperbolic"][string(f), x] = @benchmarkable ($f)($x)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
24 end
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
25 end
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
26
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
27 SUITE
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
28
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
29
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
30 # TODO: Make it easy to run and display results (useful to look at them in a webbrowser? Could serve them using julia)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
31 # TODO: Make it easy to compare different commits. (A simple script?)
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
32 # TODO: Do we need machanisms to save the results from runs?
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
33 # TBD: How well does BenchmarkTools work for comparisons, do we need make special considerations?
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
34 # TBD: When and how do we want to look at % of peak performance? Is this going to be done using the benchmark suite?
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
35
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
36
87bc91def1ff Start setting things up
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
37 # Should set HGPLAIN before script use. Example: `HGPLAIN= hg st`