Class for real time, CPU time and CPU cycles measuring.
More...
#include <TNL/Timer.h>
|
| Timer () |
| Basic constructor.
|
|
unsigned long long int | getCPUCycles () const |
| Returns the number of CPU cycles (machine cycles) elapsed on this timer.
|
|
double | getCPUTime () const |
| Returns the elapsed CPU time on this timer.
|
|
double | getRealTime () const |
| Returns the elapsed real time on this timer.
|
|
void | reset () |
| Resets timer.
|
|
void | start () |
| Starts timer.
|
|
void | stop () |
| Stops (pauses) the timer.
|
|
bool | writeLog (Logger &logger, int logLevel=0) const |
| Writes a record into the logger.
|
|
|
using | Duration = typename std::chrono::high_resolution_clock::duration |
|
using | TimePoint = typename std::chrono::high_resolution_clock::time_point |
|
|
static double | durationToDouble (const Duration &duration) |
| Converts the real time into seconds as a floating point number.
|
|
static unsigned long long int | readCPUCycles () |
| Function for counting the number of CPU cycles (machine cycles).
|
|
static double | readCPUTime () |
| Function for measuring the CPU time.
|
|
static TimePoint | readRealTime () |
| Function for measuring the real time.
|
|
|
unsigned long long int | initialCPUCycles |
|
double | initialCPUTime |
|
TimePoint | initialRealTime |
|
bool | stopState |
|
unsigned long long int | totalCPUCycles |
|
double | totalCPUTime |
|
Duration | totalRealTime |
|
Class for real time, CPU time and CPU cycles measuring.
It measures the elapsed real time, CPU time (in seconds) and CPU cycles elapsed on the timer. The timer can be paused by calling stop and start methods and reseted by calling reset.
- Example
#include <iostream>
#include <chrono>
#include <thread>
#include <TNL/Timer.h>
int main()
{
const int milliseconds = 0.5e3;
time.start();
time.stop();
time.reset();
}
Class for real time, CPU time and CPU cycles measuring.
Definition Timer.h:28
- Output
Elapsed real time: 0.500085
Elapsed CPU time: 1.9e-05
Elapsed CPU cycles: 1656308456
Real time after reset:0
CPU time after reset: 0
CPU cycles after reset: 0
◆ Timer()
Basic constructor.
This function creates a new timer and resets it.
◆ getCPUCycles()
unsigned long long int TNL::Timer::getCPUCycles |
( |
| ) |
const |
|
inline |
Returns the number of CPU cycles (machine cycles) elapsed on this timer.
CPU cycles are counted by adding the number of CPU cycles between start and stop methods together.
◆ getCPUTime()
double TNL::Timer::getCPUTime |
( |
| ) |
const |
|
inline |
Returns the elapsed CPU time on this timer.
This method returns the CPU time (i.e. time the CPU spent by processing this process) elapsed so far (in seconds). This method can be called while the timer is running, there is no need to use stop method first.
◆ getRealTime()
double TNL::Timer::getRealTime |
( |
| ) |
const |
|
inline |
Returns the elapsed real time on this timer.
This method returns the real time elapsed so far (in seconds). This method can be called while the timer is running, there is no need to use stop method first.
◆ reset()
void TNL::Timer::reset |
( |
| ) |
|
|
inline |
Resets timer.
Resets all time and cycle measurements such as real time, CPU time and CPU cycles. Sets all of them to zero.
◆ start()
void TNL::Timer::start |
( |
| ) |
|
|
inline |
Starts timer.
Starts all time and cycle measurements such as real time, CPU time and CPU cycles. This method can be used also after using the stop method. The timer then continues measuring the time without reseting.
◆ stop()
void TNL::Timer::stop |
( |
| ) |
|
|
inline |
Stops (pauses) the timer.
Pauses all time and cycle measurements such as real time, CPU time and CPU cycles, but does not set them to zero.
◆ writeLog()
bool TNL::Timer::writeLog |
( |
Logger & |
logger, |
|
|
int |
logLevel = 0 |
|
) |
| const |
|
inline |
Writes a record into the logger.
- Parameters
-
logger | Name of Logger object. |
logLevel | A non-negative integer recording the log record indent. |
- Example
#include <iostream>
#include <chrono>
#include <thread>
#include <TNL/Timer.h>
#include <TNL/Logger.h>
int main()
{
const int milliseconds = 0.5e3;
time.start();
time.stop();
time.writeLog( logger, 0 );
}
Creates calculations log in the form of a table.
Definition Logger.h:18
- Output
| Real time: 0.501581 |
| CPU time: 2e-05 |
| CPU Cycles: 1661261640 |
The documentation for this class was generated from the following files:
- src/TNL/Timer.h
- src/TNL/Timer.hpp