#pragma once #include #include #include /** * Measure high precision time intervals (using std::chrono). * Author: Karl Hofer */ class Timing { public: static Timing* getInstance(); void startSetup(); void stopSetup(); void startComputation(); void stopComputation(); void startFinalization(); void stopFinalization(); void startRecord(const std::string& name); void stopRecord(const std::string& name); void print(const bool prettyPrint = false) const; std::string getResults() const; private: Timing() {}; std::map mRecordings; std::map > mResults; std::string parseDate(const int ms) const; static Timing* mInstance; };