From d91bfe2d12d0fb5daf2be0a7587045d85a50c4a1 Mon Sep 17 00:00:00 2001
From: Scheaven <xuepengqiang>
Date: 星期四, 12 八月 2021 19:12:17 +0800
Subject: [PATCH] m

---
 src/utils/timer_utils.hpp |   38 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 38 insertions(+), 0 deletions(-)

diff --git a/src/utils/timer_utils.hpp b/src/utils/timer_utils.hpp
new file mode 100644
index 0000000..dafccbb
--- /dev/null
+++ b/src/utils/timer_utils.hpp
@@ -0,0 +1,38 @@
+#pragma once
+
+#include <istream>
+#include <string>
+#include <chrono>
+#include "log_util.h"
+#include <boost/format.hpp>
+
+class Timer
+{
+    public:
+        Timer():beg_(clock_::now()){}
+        void reset()
+        {
+            beg_ = clock_::now();
+        }
+        double elapsed() const
+        {
+            return std::chrono::duration_cast<second_>(clock_::now() - beg_).count();
+        }
+        void out(std::string message="")
+        {
+            double t = elapsed();
+            // std::cout << message << " elasped time:" << t << "ms" << std::endl;
+            DEBUG((boost::format("%e lasped time:%f ms")%message %t).str());
+            reset();
+        }
+        // DEBUG((boost::format("nhao%d")%1).str());
+
+        double get_duration() const
+        {
+            return elapsed();
+        }
+    private:
+        using clock_ = std::chrono::high_resolution_clock;
+        using second_=std::chrono::duration<double,std::milli>;
+        std::chrono::time_point<clock_>beg_;
+};

--
Gitblit v1.8.0