Class ParaSysTimer. More...
#include <paraSysTimer.h>
Public Member Functions | |
| ParaSysTimer () | |
| default constructor More... | |
| ~ParaSysTimer () | |
| destructor More... | |
| void | init (ParaComm *paraComm) |
| initialize timer More... | |
| double | getElapsedTime () |
| get elapsed time More... | |
| void | start (void) |
| start timer More... | |
| void | stop (void) |
| stop timer More... | |
| double | getStartTime (void) |
| get start time More... | |
| double | getRTimeInterval (void) |
| get elapsed time from start time More... | |
| double | getRTime (void) |
| get real time between start timne and stop time More... | |
| double | getUTime (void) |
| get user time between start timne and stop time More... | |
| double | getSTime (void) |
| get system time between start timne and stop time More... | |
Public Member Functions inherited from ParaTimer | |
| ParaTimer () | |
| constructor More... | |
| virtual | ~ParaTimer () |
| destructor More... | |
| void | setOffset (double time) |
| virtual void | init (ParaComm *paraComm)=0 |
| initialize timer More... | |
| virtual double | getElapsedTime ()=0 |
| get elapsed time More... | |
Private Attributes | |
| std::chrono::steady_clock::time_point | startPoint |
| real time at start() More... | |
| std::chrono::steady_clock::time_point | stopPoint |
| real time at stop() More... | |
| double | uTimeStart |
| process user CPU seconds at start() More... | |
| double | uTimeStop |
| process user CPU seconds at stop() More... | |
| double | sTimeStart |
| process system CPU seconds at start() More... | |
| double | sTimeStop |
| process system CPU seconds at stop() More... | |
Additional Inherited Members | |
Protected Attributes inherited from ParaTimer | |
| double | offset |
| offset of start time More... | |
Class ParaSysTimer.
Wall-clock timing uses std::chrono::steady_clock (monotonic, high resolution). Process CPU user/system time uses getrusage() where available.
(Historically the real-time path was implemented with times()/HZ under a SYSV code path. On Linux times() reports in units of sysconf(_SC_CLK_TCK) (100), but TICKS was defined as the kernel HZ, so the elapsed wall time was scaled by the wrong constant – a ~600 s run was measured as ~14 s, which in turn made the "limits/time" derived from it far too large. Using std::chrono removes the platform-specific tick arithmetic entirely.)
Definition at line 62 of file paraSysTimer.h.
| ParaSysTimer | ( | ) |
default constructor
Definition at line 76 of file paraSysTimer.h.
| ~ParaSysTimer | ( | ) |
destructor
Definition at line 86 of file paraSysTimer.h.
|
virtual |
get elapsed time
Implements ParaTimer.
Definition at line 105 of file paraSysTimer.h.
References ParaSysTimer::getRTimeInterval().
| double getRTime | ( | void | ) |
get real time between start timne and stop time
Definition at line 129 of file paraSysTimer.cpp.
References ParaSysTimer::startPoint, and ParaSysTimer::stopPoint.
| double getRTimeInterval | ( | void | ) |
get elapsed time from start time
Definition at line 121 of file paraSysTimer.cpp.
References ParaSysTimer::startPoint.
Referenced by ParaSysTimer::getElapsedTime(), and ParaTimerTh::getElapsedTime().
| double getStartTime | ( | void | ) |
get start time
Definition at line 113 of file paraSysTimer.cpp.
References ParaSysTimer::startPoint.
Referenced by ParaCommCPP11::getStartTime(), and ParaCommPth::getStartTime().
| double getSTime | ( | void | ) |
get system time between start timne and stop time
Definition at line 145 of file paraSysTimer.cpp.
References ParaSysTimer::sTimeStart, and ParaSysTimer::sTimeStop.
| double getUTime | ( | void | ) |
get user time between start timne and stop time
Definition at line 137 of file paraSysTimer.cpp.
References ParaSysTimer::uTimeStart, and ParaSysTimer::uTimeStop.
|
virtual |
initialize timer
| paraComm | communicator used |
Implements ParaTimer.
Definition at line 94 of file paraSysTimer.h.
References ParaSysTimer::start().
| void start | ( | void | ) |
start timer
Definition at line 95 of file paraSysTimer.cpp.
References readProcessCpuTime(), ParaSysTimer::startPoint, ParaSysTimer::sTimeStart, and ParaSysTimer::uTimeStart.
Referenced by ParaCommCPP11::init(), ParaCommPth::init(), ParaTimerTh::init(), ParaSysTimer::init(), and main().
| void stop | ( | void | ) |
stop timer
Definition at line 104 of file paraSysTimer.cpp.
References readProcessCpuTime(), ParaSysTimer::sTimeStop, ParaSysTimer::stopPoint, and ParaSysTimer::uTimeStop.
|
private |
real time at start()
Definition at line 64 of file paraSysTimer.h.
Referenced by ParaSysTimer::getRTime(), ParaSysTimer::getRTimeInterval(), ParaSysTimer::getStartTime(), and ParaSysTimer::start().
|
private |
process system CPU seconds at start()
Definition at line 68 of file paraSysTimer.h.
Referenced by ParaSysTimer::getSTime(), and ParaSysTimer::start().
|
private |
process system CPU seconds at stop()
Definition at line 69 of file paraSysTimer.h.
Referenced by ParaSysTimer::getSTime(), and ParaSysTimer::stop().
|
private |
real time at stop()
Definition at line 65 of file paraSysTimer.h.
Referenced by ParaSysTimer::getRTime(), and ParaSysTimer::stop().
|
private |
process user CPU seconds at start()
Definition at line 66 of file paraSysTimer.h.
Referenced by ParaSysTimer::getUTime(), and ParaSysTimer::start().
|
private |
process user CPU seconds at stop()
Definition at line 67 of file paraSysTimer.h.
Referenced by ParaSysTimer::getUTime(), and ParaSysTimer::stop().