From 44d43d8d6e4f9321c9001f269ff433bd06aa81e1 Mon Sep 17 00:00:00 2001 From: mtklein Date: Wed, 6 May 2015 12:42:04 -0700 Subject: 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 --- bench/ControlBench.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 bench/ControlBench.cpp (limited to 'bench/ControlBench.cpp') 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;) -- cgit v1.2.3