2016-04-24 02:45:01 +08:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <chrono>
|
|
|
|
|
2017-02-18 21:36:50 +08:00
|
|
|
namespace utils {
|
|
|
|
|
2017-08-30 23:17:43 +08:00
|
|
|
// This class is threadsafe.
|
2017-07-15 01:33:45 +08:00
|
|
|
class Timer {
|
2017-02-18 18:54:37 +08:00
|
|
|
public:
|
2017-07-15 01:33:45 +08:00
|
|
|
/** Time elapsed since creation. */
|
2017-09-19 22:58:22 +08:00
|
|
|
std::chrono::duration<double> Elapsed() const {
|
2017-07-15 01:33:45 +08:00
|
|
|
return std::chrono::steady_clock::now() - start_time_;
|
2017-02-18 18:54:37 +08:00
|
|
|
}
|
2016-12-22 22:51:16 +08:00
|
|
|
|
2017-02-18 18:54:37 +08:00
|
|
|
private:
|
2017-11-13 16:50:49 +08:00
|
|
|
std::chrono::time_point<std::chrono::steady_clock> start_time_ =
|
2017-07-15 01:33:45 +08:00
|
|
|
std::chrono::steady_clock::now();
|
2016-04-24 02:45:01 +08:00
|
|
|
};
|
2018-04-22 14:31:09 +08:00
|
|
|
|
|
|
|
} // namespace utils
|