31 #ifndef SCHRONOMANAGER_HH
32 #define SCHRONOMANAGER_HH 1
38 typedef std::chrono::time_point<std::chrono::system_clock>
ChronoTime;
40 typedef std::chrono::milliseconds
Ms;
41 typedef std::chrono::seconds
Secs;
42 typedef std::chrono::minutes
Mins;
43 typedef std::chrono::hours
Hs;
188 inline void SetNbThreads(
int a_nbThreadsForProjection,
int a_nbThreadsForImageComputation)
void SetNbThreads(int a_nbThreadsForProjection, int a_nbThreadsForImageComputation)
Set the number of threads for both projection and image computations.
void StopIterativeDataUpdateStep1(int a_thread)
Stop the timer for duration of iterative data update step 1.
This header file is mainly used to declare some macro definitions and all includes needed from the st...
ChronoTime * mp_startIterativeDataUpdateStep3
int m_nbThreadsForImageComputation
void SetNbCustomSteps(int a_nbCustomSteps)
Set the number of custom steps for profiling.
int CheckParameters()
Check validity of all parameters.
void StartCustomStep(int a_thread, int a_step)
Start the timer for duration of custom step of the given index for the given thread.
std::chrono::seconds Secs
sChronoManager()
The constructor of sChronoManager.
void StopIterativeDataUpdateStep3(int a_thread)
Stop the timer for duration of iterative data update step 3.
DurationNano * mp_durationIterativeDataUpdateStep2
std::chrono::time_point< std::chrono::system_clock > ChronoTime
std::chrono::duration< int64_t, std::nano > DurationNano
std::chrono::minutes Mins
ChronoTime ** mpp_startCustomSteps
ChronoTime * mp_startIterativeDataUpdateStep4
DurationNano m_durationConvolution
void StartIterativeDataUpdateStep1(int a_thread)
Start the timer for duration of iterative data update step 1.
static sChronoManager * mp_Instance
void StopIterativeDataUpdateStep4(int a_thread)
Stop the timer for duration of iterative data update step 4.
void StartIterativeDataUpdateStep2(int a_thread)
Start the timer for duration of iterative data update step 2.
DurationNano * mp_durationIterativeDataUpdateStep1
DurationNano * mp_durationIterativeDataUpdateStep3
DurationNano * mp_durationIterativeDataUpdateStep4
~sChronoManager()
The destructor of sChronoManager.
void StartIterativeDataUpdateStep3(int a_thread)
Start the timer for duration of iterative data update step 3.
void StopIterativeDataUpdateStep2(int a_thread)
Stop the timer for duration of iterative data update step 2.
void StartConvolution()
Start the timer for duration of convolution.
int m_nbThreadsForProjection
void StartIterativeDataUpdateStep4(int a_thread)
Start the timer for duration of iterative data update step 4.
int Initialize()
Initialize all thread-safe buffers for profiling.
Declaration of class sOutputManager.
void StopConvolution()
Stop the timer for duration of convolution.
ChronoTime * mp_startIterativeDataUpdateStep1
DurationNano ** mpp_durationCustomSteps
void StopCustomStep(int a_thread, int a_step)
Stop the timer for duration of custom step of the given index for the given thread.
This class is designed to manage some profiling of the code.
ChronoTime * mp_startIterativeDataUpdateStep2
std::chrono::milliseconds Ms
sChronoManager(sChronoManager const &)
void SetVerbose(int a_verbose)
Set the verbose level.
static sChronoManager * GetInstance()
Instantiate the singleton if not already done, then return the pointer to its instance.
ChronoTime m_startConvolution
void operator=(sChronoManager const &)
void Display()
Display the results of the duration buffers.