using namespace perf;
int64 TestBase::timeLimitDefault = 0;
-unsigned int TestBase::iterationsLimitDefault = (unsigned int)(-1);
+unsigned int TestBase::iterationsLimitDefault = UINT_MAX;
int64 TestBase::_timeadjustment = 0;
// Item [0] will be considered the default implementation.
}
timeLimitDefault = param_time_limit == 0.0 ? 1 : (int64)(param_time_limit * cv::getTickFrequency());
- iterationsLimitDefault = param_force_samples == 0 ? (unsigned)(-1) : param_force_samples;
+ iterationsLimitDefault = param_force_samples == 0 ? UINT_MAX : param_force_samples;
_timeadjustment = _calibrate();
}
int64 TestBase::_calibrate()
{
CV_TRACE_FUNCTION();
+ if (iterationsLimitDefault <= 1)
+ return 0;
+
class _helper : public ::perf::TestBase
{
- public:
+ public:
+ _helper() { testStrategy = PERF_STRATEGY_BASE; }
performance_metrics& getMetrics() { return calcMetrics(); }
virtual void TestBody() {}
virtual void PerfTestBody()
cv::Mat b(2048, 2048, CV_32S, cv::Scalar(2));
declare.time(30);
double s = 0;
- for(declare.iterations(20); next() && startTimer(); stopTimer())
+ declare.iterations(20);
+ minIters = nIters = 20;
+ for(; next() && startTimer(); stopTimer())
s+=a.dot(b);
declare.time(s);
//self calibration
SetUp();
- for(declare.iterations(1000); next() && startTimer(); stopTimer()){}
+ declare.iterations(1000);
+ minIters = nIters = 1000;
+ for(int iters = 0; next() && startTimer(); iters++, stopTimer()) { /*std::cout << iters << nIters << std::endl;*/ }
}
};