flutter_flutter/benchmarking/benchmarking.h
Chinmay Garde c2128fc809
Create a benchmarking target for the shell. (#6420)
Also adds //flutter/benchmarking which, similar to //flutter/testing, allows for the creation of a benchmarking executable. This is also the target that contains benchmarking utilities.
2018-10-03 17:22:33 -07:00

34 lines
754 B
C++

// Copyright 2018 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_BENCHMARKING_BENCHMARKING_H_
#define FLUTTER_BENCHMARKING_BENCHMARKING_H_
#include "benchmark/benchmark_api.h"
namespace benchmarking {
class ScopedPauseTiming {
public:
ScopedPauseTiming(::benchmark::State& state, bool enabled = true)
: state_(state), enabled_(enabled) {
if (enabled_) {
state_.PauseTiming();
}
}
~ScopedPauseTiming() {
if (enabled_) {
state_.ResumeTiming();
}
}
private:
::benchmark::State& state_;
const bool enabled_;
};
} // namespace benchmarking
#endif // FLUTTER_BENCHMARKING_BENCHMARKING_H_