diff options
author | mtklein <mtklein@chromium.org> | 2015-05-06 12:42:04 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-05-06 12:42:04 -0700 |
commit | 44d43d8d6e4f9321c9001f269ff433bd06aa81e1 (patch) | |
tree | 075b5ee806a80d38d52cbe76072436188cee4005 /bench | |
parent | e4017d8ca709bc0b4fc0f95c26eb592a8d5c597b (diff) |
Add a control benchmark.
I'm thinking of using this in perf with something like:
ratio(fill(filter("test=foo")), fill(filter("test=control")))
Does that make sense to you?
Not sure that this is really a good control bench on all bots,
but I propose we just run it a bit and find out if it needs work.
BUG=skia:
Review URL: https://codereview.chromium.org/1129823003
Diffstat (limited to 'bench')
-rw-r--r-- | bench/ControlBench.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bench/ControlBench.cpp b/bench/ControlBench.cpp new file mode 100644 index 0000000000..8c1177a5e3 --- /dev/null +++ b/bench/ControlBench.cpp @@ -0,0 +1,26 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "Benchmark.h" + +// This benchmark's runtime should be fairly constant for a given machine, +// so it can be used as a baseline to control for thermal or other throttling. + +struct ControlBench : public Benchmark { + const char* onGetName() override { return "control"; } + bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; } + + void onDraw(const int loops, SkCanvas*) override { + // Nothing terribly useful: force a memory read, a memory write, and some math. + volatile uint32_t rand = 0; + for (int i = 0; i < 1000*loops; i++) { + rand *= 1664525; + rand += 1013904223; + } + } +}; +DEF_BENCH(return new ControlBench;) |