Home | History | Annotate | Download | only in bench
      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 "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 {
     14     const char* onGetName() override { return "control"; }
     15     bool isSuitableFor(Backend backend) override { return backend == kNonRendering_Backend; }
     16 
     17     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