1 /* 2 * Copyright 2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "bench/Benchmark.h" 9 10 // This benchmark's runtime should be fairly constant for a given machine, 11 // so it can be used as a baseline to control for thermal or other throttling. 12 13 struct ControlBench : public Benchmark { onGetNameControlBench14 const char* onGetName() override { return "control"; } isSuitableForControlBench15 bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; } 16 onDrawControlBench17 void onDraw(int loops, SkCanvas*) override { 18 // Nothing terribly useful: force a memory read, a memory write, and some math. 19 volatile uint32_t rand = 0; 20 for (int i = 0; i < 1000*loops; i++) { 21 rand *= 1664525; 22 rand += 1013904223; 23 } 24 } 25 }; 26 DEF_BENCH(return new ControlBench;) 27