Remove getEstimatedClockResolution from Timer

It used to be part of the experimental benchmarking support, but
since that was replaced with proper benchmarking support with its
own timer facilities, it is now a dead code and useless.
This commit is contained in:
Martin Hořeňovský 2021-09-29 11:24:14 +02:00
parent 426954032f
commit 5250cf6d58
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
2 changed files with 0 additions and 37 deletions

View File

@ -17,42 +17,6 @@ namespace Catch {
return std::chrono::duration_cast<std::chrono::nanoseconds>( std::chrono::high_resolution_clock::now().time_since_epoch() ).count(); return std::chrono::duration_cast<std::chrono::nanoseconds>( std::chrono::high_resolution_clock::now().time_since_epoch() ).count();
} }
namespace {
auto estimateClockResolution() -> uint64_t {
uint64_t sum = 0;
static const uint64_t iterations = 1000000;
auto startTime = getCurrentNanosecondsSinceEpoch();
for( std::size_t i = 0; i < iterations; ++i ) {
uint64_t ticks;
uint64_t baseTicks = getCurrentNanosecondsSinceEpoch();
do {
ticks = getCurrentNanosecondsSinceEpoch();
} while( ticks == baseTicks );
auto delta = ticks - baseTicks;
sum += delta;
// If we have been calibrating for over 3 seconds -- the clock
// is terrible and we should move on.
// TBD: How to signal that the measured resolution is probably wrong?
if (ticks > startTime + 3 * nanosecondsInSecond) {
return sum / ( i + 1u );
}
}
// We're just taking the mean, here. To do better we could take the std. dev and exclude outliers
// - and potentially do more iterations if there's a high variance.
return sum/iterations;
}
}
auto getEstimatedClockResolution() -> uint64_t {
static auto s_resolution = estimateClockResolution();
return s_resolution;
}
void Timer::start() { void Timer::start() {
m_nanoseconds = getCurrentNanosecondsSinceEpoch(); m_nanoseconds = getCurrentNanosecondsSinceEpoch();
} }

View File

@ -13,7 +13,6 @@
namespace Catch { namespace Catch {
auto getCurrentNanosecondsSinceEpoch() -> uint64_t; auto getCurrentNanosecondsSinceEpoch() -> uint64_t;
auto getEstimatedClockResolution() -> uint64_t;
class Timer { class Timer {
uint64_t m_nanoseconds = 0; uint64_t m_nanoseconds = 0;