49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef OPENCV_CUDA_SAMPLES_TICKMETER_
 | 
						|
#define OPENCV_CUDA_SAMPLES_TICKMETER_
 | 
						|
 | 
						|
class CV_EXPORTS TickMeter
 | 
						|
{
 | 
						|
public:
 | 
						|
    TickMeter();
 | 
						|
    void start();
 | 
						|
    void stop();
 | 
						|
 | 
						|
    int64 getTimeTicks() const;
 | 
						|
    double getTimeMicro() const;
 | 
						|
    double getTimeMilli() const;
 | 
						|
    double getTimeSec()   const;
 | 
						|
    int64 getCounter() const;
 | 
						|
 | 
						|
    void reset();
 | 
						|
private:
 | 
						|
    int64 counter;
 | 
						|
    int64 sumTime;
 | 
						|
    int64 startTime;
 | 
						|
};
 | 
						|
 | 
						|
std::ostream& operator << (std::ostream& out, const TickMeter& tm);
 | 
						|
 | 
						|
 | 
						|
TickMeter::TickMeter() { reset(); }
 | 
						|
int64 TickMeter::getTimeTicks() const { return sumTime; }
 | 
						|
double TickMeter::getTimeMicro() const { return  getTimeMilli()*1e3;}
 | 
						|
double TickMeter::getTimeMilli() const { return getTimeSec()*1e3; }
 | 
						|
double TickMeter::getTimeSec() const { return (double)getTimeTicks()/cv::getTickFrequency();}
 | 
						|
int64 TickMeter::getCounter() const { return counter; }
 | 
						|
void TickMeter::reset() {startTime = 0; sumTime = 0; counter = 0; }
 | 
						|
 | 
						|
void TickMeter::start(){ startTime = cv::getTickCount(); }
 | 
						|
void TickMeter::stop()
 | 
						|
{
 | 
						|
    int64 time = cv::getTickCount();
 | 
						|
    if ( startTime == 0 )
 | 
						|
        return;
 | 
						|
    ++counter;
 | 
						|
    sumTime += ( time - startTime );
 | 
						|
    startTime = 0;
 | 
						|
}
 | 
						|
 | 
						|
std::ostream& operator << (std::ostream& out, const TickMeter& tm) { return out << tm.getTimeSec() << "sec"; }
 | 
						|
 | 
						|
#endif
 |