Files
Catch2/src/catch2/catch_timer.cpp
T

38 lines
1.2 KiB
C++
Raw Normal View History

// Copyright Catch2 Authors
// Distributed under the Boost Software License, Version 1.0.
2022-10-28 11:22:53 +02:00
// (See accompanying file LICENSE.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
// SPDX-License-Identifier: BSL-1.0
2020-03-30 10:34:21 +02:00
#include <catch2/catch_timer.hpp>
2013-08-07 18:56:35 +01:00
#include <chrono>
2013-08-07 18:56:35 +01:00
namespace Catch {
namespace {
static auto getCurrentNanosecondsSinceEpoch() -> uint64_t {
2024-09-13 11:15:54 +02:00
return std::chrono::duration_cast<std::chrono::nanoseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();
}
} // end unnamed namespace
2013-08-07 18:56:35 +01:00
void Timer::start() {
m_nanoseconds = getCurrentNanosecondsSinceEpoch();
}
auto Timer::getElapsedNanoseconds() const -> uint64_t {
return getCurrentNanosecondsSinceEpoch() - m_nanoseconds;
}
auto Timer::getElapsedMicroseconds() const -> uint64_t {
return getElapsedNanoseconds()/1000;
}
auto Timer::getElapsedMilliseconds() const -> unsigned int {
return static_cast<unsigned int>(getElapsedMicroseconds()/1000);
}
auto Timer::getElapsedSeconds() const -> double {
2024-05-23 16:49:57 +02:00
return static_cast<double>(getElapsedMicroseconds())/1000000.0;
}
2017-08-04 13:53:47 +01:00
2013-08-07 18:56:35 +01:00
} // namespace Catch