The function returns the number of ticks after the certain event (for example, when the machine was
turned on). It can be used to initialize RNG or to measure a function execution time by reading the
-tick count before and after the function call. See also the tick frequency.
+tick count before and after the function call.
+@sa getTickFrequency, TickMeter
*/
CV_EXPORTS_W int64 getTickCount();
// do something ...
t = ((double)getTickCount() - t)/getTickFrequency();
@endcode
+@sa getTickCount, TickMeter
*/
CV_EXPORTS_W double getTickFrequency();
+/** @brief a Class to measure passing time.
+
+The class computes passing time by counting the number of ticks per second. That is, the following code computes the
+execution time in seconds:
+@code
+TickMeter tm;
+tm.start();
+// do something ...
+tm.stop();
+std::cout << tm.getTimeSec();
+@endcode
+@sa getTickCount, getTickFrequency
+*/
+
+class CV_EXPORTS_W TickMeter
+{
+public:
+ //! the default constructor
+ CV_WRAP TickMeter()
+ {
+ reset();
+ }
+
+ /**
+ starts counting ticks.
+ */
+ CV_WRAP void start()
+ {
+ startTime = cv::getTickCount();
+ }
+
+ /**
+ stops counting ticks.
+ */
+ CV_WRAP void stop()
+ {
+ int64 time = cv::getTickCount();
+ if (startTime == 0)
+ return;
+ ++counter;
+ sumTime += (time - startTime);
+ startTime = 0;
+ }
+
+ /**
+ returns counted ticks.
+ */
+ CV_WRAP int64 getTimeTicks() const
+ {
+ return sumTime;
+ }
+
+ /**
+ returns passed time in microseconds.
+ */
+ CV_WRAP double getTimeMicro() const
+ {
+ return getTimeMilli()*1e3;
+ }
+
+ /**
+ returns passed time in milliseconds.
+ */
+ CV_WRAP double getTimeMilli() const
+ {
+ return getTimeSec()*1e3;
+ }
+
+ /**
+ returns passed time in seconds.
+ */
+ CV_WRAP double getTimeSec() const
+ {
+ return (double)getTimeTicks() / getTickFrequency();
+ }
+
+ /**
+ returns internal counter value.
+ */
+ CV_WRAP int64 getCounter() const
+ {
+ return counter;
+ }
+
+ /**
+ resets internal values.
+ */
+ CV_WRAP void reset()
+ {
+ startTime = 0;
+ sumTime = 0;
+ counter = 0;
+ }
+
+private:
+ int64 counter;
+ int64 sumTime;
+ int64 startTime;
+};
+
+/** @brief output operator
+@code
+TickMeter tm;
+tm.start();
+// do something ...
+tm.stop();
+std::cout << tm;
+@endcode
+*/
+
+static inline
+std::ostream& operator << (std::ostream& out, const TickMeter& tm)
+{
+ return out << tm.getTimeSec() << "sec";
+}
+
/** @brief Returns the number of CPU ticks.
The function returns the current number of CPU ticks on some architectures (such as x86, x64,
+++ /dev/null
-#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