/* * timemeasurement.cpp * * Created on: Nov 25, 2011 * Author: muecklgr_local */ #include #include "GLTB/timemeasurement.h" namespace gltb { void TimeMeasurement::setMaxNumMeasurements(int maxNumMeasurements) { this->maxNumMeasurements=maxNumMeasurements; if(maxNumMeasurements>0 && measurements.size()>maxNumMeasurements) { while(measurements.size()>maxNumMeasurements) { measurements.erase(measurements.begin()); } } } void TimeMeasurement::reset() { measurements.clear(); startOffset=0; } void TimeMeasurement::start(bool continueMeasurement) { if(continueMeasurement && !measurements.empty()) { startOffset=measurements[measurements.size()-1]; measurements.pop_back(); } else { startOffset=0; } timer.start(); } void TimeMeasurement::stop() { long long time=timer.stop(); addMeasurement(startOffset+time); startOffset=0; } void TimeMeasurement::addMeasurement(long long time) { measurements.push_back(time); if(maxNumMeasurements>0 && measurements.size()>maxNumMeasurements) { while(measurements.size()>maxNumMeasurements) { measurements.erase(measurements.begin()); } } } double TimeMeasurement::getAverageTime(int numMeasurements) { double averageTime=0; if(numMeasurements==-1) { numMeasurements=measurements.size(); } std::cout << "numMeasurements=" << numMeasurements << std::endl; for(unsigned int i=measurements.size()-numMeasurements;i