#include #include #include #include class Timer { public: void start() { m_StartTime = std::chrono::system_clock::now(); m_bRunning = true; } void stop() { m_EndTime = std::chrono::system_clock::now(); m_bRunning = false; } double elapsedMilliseconds() { std::chrono::time_point endTime; if(m_bRunning) { endTime = std::chrono::system_clock::now(); } else { endTime = m_EndTime; } return std::chrono::duration_cast(endTime - m_StartTime).count(); } double elapsedSeconds() { return elapsedMilliseconds() / 1000.0; } private: std::chrono::time_point m_StartTime; std::chrono::time_point m_EndTime; bool m_bRunning = false; }; long fibonacci(unsigned n) { if (n < 2) return n; return fibonacci(n-1) + fibonacci(n-2); } int main() { // std::chrono::time_point start, end; // start = std::chrono::system_clock::now(); // Timer timer; // timer.start(); // std::cout << "f(42) = " << fibonacci(42) << '\n'; // timer.stop(); // // std::cout << "Time: " << timer.elapsed() << std::endl; // end = std::chrono::system_clock::now(); // std::chrono::duration elapsed_seconds = end-start; // std::time_t end_time = std::chrono::system_clock::to_time_t(end); // std::cout << "finished computation at " << std::ctime(&end_time) // << "elapsed time: " << elapsed_seconds.count() << "s\n"; Timer timer; timer.start(); int counter = 0; double test, test2; while(timer.elapsedSeconds() < 10.0) { counter++; test = std::cos(counter / M_PI); test2 = std::sin(counter / M_PI); } timer.stop(); std::cout << counter << std::endl; std::cout << "Seconds: " << timer.elapsedSeconds() << std::endl; std::cout << "Milliseconds: " << timer.elapsedMilliseconds() << std::endl ; }