benchmark
1.6.1
Toggle main menu visibility
Loading...
Searching...
No Matches
benchmark_api_internal.h
1
#ifndef BENCHMARK_API_INTERNAL_H
2
#define BENCHMARK_API_INTERNAL_H
3
4
#include <cmath>
5
#include <iosfwd>
6
#include <limits>
7
#include <memory>
8
#include <string>
9
#include <vector>
10
11
#include "benchmark/benchmark.h"
12
#include "commandlineflags.h"
13
14
namespace
benchmark {
15
namespace
internal {
16
17
// Information kept per benchmark we may want to run
18
class
BenchmarkInstance {
19
public
:
20
BenchmarkInstance(
Benchmark
* benchmark,
int
family_index,
21
int
per_family_instance_index,
22
const
std::vector<int64_t>& args,
int
threads);
23
24
const
BenchmarkName
& name()
const
{
return
name_; }
25
int
family_index()
const
{
return
family_index_; }
26
int
per_family_instance_index()
const
{
return
per_family_instance_index_; }
27
AggregationReportMode aggregation_report_mode()
const
{
28
return
aggregation_report_mode_;
29
}
30
TimeUnit time_unit()
const
{
return
time_unit_; }
31
bool
measure_process_cpu_time()
const
{
return
measure_process_cpu_time_; }
32
bool
use_real_time()
const
{
return
use_real_time_; }
33
bool
use_manual_time()
const
{
return
use_manual_time_; }
34
BigO complexity()
const
{
return
complexity_; }
35
BigOFunc* complexity_lambda()
const
{
return
complexity_lambda_; }
36
const
std::vector<Statistics>& statistics()
const
{
return
statistics_; }
37
int
repetitions()
const
{
return
repetitions_; }
38
double
min_time()
const
{
return
min_time_; }
39
IterationCount iterations()
const
{
return
iterations_; }
40
int
threads()
const
{
return
threads_; }
41
void
Setup()
const
;
42
void
Teardown()
const
;
43
44
State
Run(IterationCount iters,
int
thread_id,
internal::ThreadTimer
* timer,
45
internal::ThreadManager
* manager,
46
internal::PerfCountersMeasurement
* perf_counters_measurement)
const
;
47
48
private
:
49
BenchmarkName
name_;
50
Benchmark
& benchmark_;
51
const
int
family_index_;
52
const
int
per_family_instance_index_;
53
AggregationReportMode aggregation_report_mode_;
54
const
std::vector<int64_t>& args_;
55
TimeUnit time_unit_;
56
bool
measure_process_cpu_time_;
57
bool
use_real_time_;
58
bool
use_manual_time_;
59
BigO complexity_;
60
BigOFunc* complexity_lambda_;
61
UserCounters counters_;
62
const
std::vector<Statistics>& statistics_;
63
int
repetitions_;
64
double
min_time_;
65
IterationCount iterations_;
66
int
threads_;
// Number of concurrent threads to us
67
68
typedef
void (*callback_function)(
const
benchmark::State
&);
69
callback_function setup_ =
nullptr
;
70
callback_function teardown_ =
nullptr
;
71
};
72
73
bool
FindBenchmarksInternal(
const
std::string& re,
74
std::vector<BenchmarkInstance>* benchmarks,
75
std::ostream* Err);
76
77
bool
IsZero(
double
n);
78
79
ConsoleReporter::OutputOptions GetOutputOptions(
bool
force_no_color =
false
);
80
81
}
// end namespace internal
82
}
// end namespace benchmark
83
84
#endif
// BENCHMARK_API_INTERNAL_H
benchmark::State
Definition
benchmark.h:571
benchmark::internal::Benchmark
Definition
benchmark.h:902
benchmark::internal::PerfCountersMeasurement
Definition
perf_counters.h:125
benchmark::internal::ThreadManager
Definition
thread_manager.h:12
benchmark::internal::ThreadTimer
Definition
thread_timer.h:10
benchmark::BenchmarkName
Definition
benchmark.h:1493
src
benchmark_api_internal.h
Generated by
1.17.0