37QBenchmarkMeasurerBase * QBenchmarkGlobalData::createMeasurer()
39 QBenchmarkMeasurerBase *measurer =
nullptr;
41#if QT_CONFIG(valgrind)
42 }
else if (mode_ == CallgrindChildProcess || mode_ == CallgrindParentProcess) {
43 measurer =
new QBenchmarkCallgrindMeasurer;
45#ifdef QTESTLIB_USE_PERF_EVENTS
46 }
else if (mode_ == PerfCounter) {
47 measurer =
new QBenchmarkPerfEventsMeasurer;
49#ifdef HAVE_TICK_COUNTER
50 }
else if (mode_ == TickCounter) {
51 measurer =
new QBenchmarkTickMeasurer;
53 }
else if (mode_ == EventCounter) {
54 measurer =
new QBenchmarkEvent;
56 measurer =
new QBenchmarkTimeMeasurer;
86int QBenchmarkTestMethodData::adjustIterationCount(
int suggestion)
89 if (QBenchmarkGlobalData::current->iterationCount != -1) {
90 iterationCount = QBenchmarkGlobalData::current->iterationCount;
92 iterationCount = QBenchmarkGlobalData::current->measurer->adjustIterationCount(suggestion);
95 return iterationCount;
98void QBenchmarkTestMethodData::setResults(
const QList<QBenchmarkMeasurerBase::Measurement> &list,
101 bool accepted =
false;
102 QBenchmarkMeasurerBase::Measurement firstMeasurement = {};
104 firstMeasurement = list.constFirst();
108 if (QBenchmarkGlobalData::current->iterationCount != -1)
111 else if (QBenchmarkTestMethodData::current->runOnce || !setByMacro) {
118 else if (QBenchmarkGlobalData::current->walltimeMinimum != -1)
119 accepted = (firstMeasurement.value > QBenchmarkGlobalData::current->walltimeMinimum);
121 accepted = QBenchmarkGlobalData::current->measurer->isMeasurementAccepted(firstMeasurement);
125 resultAccepted =
true;
130 results.reserve(list.size());
132 results.emplaceBack(QBenchmarkGlobalData::current->context, m, iterationCount, setByMacro);