CppUtils/Utils/StopWatch.cpp

31 lines
846 B
C++
Raw Normal View History

2025-06-05 10:06:43 +08:00
#include "StopWatch.h"
Stopwatch* Stopwatch::StartNew() {
Stopwatch* sw = new Stopwatch();
sw->Restart();
return sw;
}
bool Stopwatch::IsRunning() const {
return _isRunning;
}
TimeSpan Stopwatch::Elapsed() {
if (_isRunning) {
auto now = std::chrono::high_resolution_clock::now();
_elapsed = now - _startTime;
}
return TimeSpan(std::chrono::duration_cast<std::chrono::nanoseconds>(_elapsed).count() / 100);
}
void Stopwatch::Stop() {
if (_isRunning) {
auto now = std::chrono::high_resolution_clock::now();
_elapsed = now - _startTime;
_isRunning = false;
}
}
void Stopwatch::Restart() {
_startTime = std::chrono::high_resolution_clock::now();
_elapsed = std::chrono::nanoseconds::zero();
_isRunning = true;
}
Stopwatch::Stopwatch() : _isRunning(false) {}