Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
ControlBench.cpp
Go to the documentation of this file.
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
13struct ControlBench : public Benchmark {
14 const char* onGetName() override { return "control"; }
15 bool isSuitableFor(Backend backend) override { return backend == Backend::kNonRendering; }
16
17 void onDraw(int loops, SkCanvas*) override {
18 // Nothing terribly useful: force a memory read, a memory write, and some math.
19 [[maybe_unused]] volatile uint32_t rand = 0;
20 for (int i = 0; i < 1000*loops; i++) {
21 uint32_t val = rand * 1664525 + 1013904223;
22 rand = val;
23 }
24 }
25};
26DEF_BENCH(return new ControlBench;)
#define DEF_BENCH(code)
Definition Benchmark.h:20
const char * backend
const char * onGetName() override
void onDraw(int loops, SkCanvas *) override
bool isSuitableFor(Backend backend) override