Files
CPP/common/profiler.hpp
2025-08-10 11:35:20 -04:00

46 lines
830 B
C++

#ifndef _COMMON_PROFILER_HPP_
#define _COMMON_PROFILER_HPP_
#include <chrono>
class Profiler
{
public:
Profiler();
virtual ~Profiler();
void start(void);
long end(void);
long elapsed(void);
private:
std::chrono::_V2::system_clock::time_point start_time = std::chrono::high_resolution_clock::now();
};
inline
Profiler::Profiler()
{
}
inline
Profiler::~Profiler()
{
}
inline
void Profiler::start(void)
{
start_time = std::chrono::high_resolution_clock::now();
}
inline
long Profiler::end(void)
{
std::chrono::_V2::system_clock::time_point end_time = std::chrono::high_resolution_clock::now();
long elapsed_time_ms = std::chrono::duration_cast<std::chrono::milliseconds>(end_time - start_time).count();
return elapsed_time_ms;
}
inline
long Profiler::elapsed(void)
{
return end();
}
#endif