/* * IXBench.cpp * Author: Benjamin Sergeant * Copyright (c) 2017-2020 Machine Zone, Inc. All rights reserved. */ #include "IXBench.h" #include namespace ix { Bench::Bench(const std::string& description) : _description(description) , _start(std::chrono::high_resolution_clock::now()) , _reported(false) { ; } Bench::~Bench() { if (!_reported) { report(); } } void Bench::report() { auto now = std::chrono::high_resolution_clock::now(); auto milliseconds = std::chrono::duration_cast(now - _start); _ms = milliseconds.count(); std::cerr << _description << " completed in " << _ms << "ms" << std::endl; _reported = true; } uint64_t Bench::getDuration() const { return _ms; } } // namespace ix