51class BenchmarkRunner {
57 int GetNumRepeats()
const {
return repeats; }
59 bool HasRepeatsRemaining()
const {
60 return GetNumRepeats() != num_repetitions_done;
63 void DoOneRepetition();
68 return reports_for_family;
71 double GetMinTime()
const {
return min_time; }
73 bool HasExplicitIters()
const {
return has_explicit_iteration_count; }
75 IterationCount GetIters()
const {
return iters; }
84 const double min_time;
85 const double min_warmup_time;
88 const bool has_explicit_iteration_count;
90 int num_repetitions_done = 0;
92 std::vector<std::thread> pool;
100 struct IterationResults {
102 IterationCount iters;
105 IterationResults DoNIterations();
109 void RunProfilerManager(IterationCount profile_iterations);
111 IterationCount PredictNumItersNeeded(
const IterationResults& i)
const;
113 bool ShouldReportIterationResults(
const IterationResults& i)
const;
115 double GetMinTimeToApply()
const;
117 void FinishWarmUp(
const IterationCount& i);