cpp-stat-bench 0.24.0
Benchmark library with statistics for C++.
Loading...
Searching...
No Matches
measure_once.cpp
Go to the documentation of this file.
1/*
2 * Copyright 2021 MusicScience37 (Kenta Kabashima)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
21
22#include <memory>
23#include <stdexcept>
24#include <utility>
25#include <vector>
26
35
36namespace stat_bench {
37namespace measurer {
38
40 const BenchmarkCondition& cond, const MeasurerName& measurer_name,
41 std::size_t iterations, std::size_t samples, std::size_t warming_up_samples)
42 -> Measurement {
44 cond, iterations, samples + warming_up_samples, warming_up_samples);
45 bench_case->execute();
46 if (context.durations().empty()) {
47 throw std::runtime_error("No measurement was done.");
48 }
49 auto measurement = Measurement{bench_case->info(), cond, measurer_name,
50 iterations, samples, context.durations(), context.custom_stat_outputs(),
51 context.custom_outputs()};
52
54
55 return measurement;
56}
57
58} // namespace measurer
59} // namespace stat_bench
Definition of BenchmarkCondition class.
Definition of BenchmarkFullName class.
Class of conditions of benchmarks.
Interface of cases in benchmarks.
static auto instance() -> InvocationContextRegistry &
Get the global instance.
Class of data of measurements.
Definition measurement.h:42
Class of names of measurers.
Definition of CustomOutputName class.
Definition of Duration class.
Definition of IBenchmarkCase class.
Definition of InvocationContext class.
Definition of InvocationContextRegistry class.
Declaration of measure_once function.
Definition of Measurement class.
Namespace of classes to measure time in benchmarks.
auto measure_once(bench_impl::IBenchmarkCase *bench_case, const BenchmarkCondition &cond, const MeasurerName &measurer_name, std::size_t iterations, std::size_t samples, std::size_t warming_up_samples) -> Measurement
Measure durations once.
Namespace of stat_bench source codes.