Index: third_party/google_benchmark/src/timers.h |
diff --git a/third_party/google_benchmark/src/timers.h b/third_party/google_benchmark/src/timers.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..65606ccd93d14f7bfa50d900c3e6a7a3a52b0c26 |
--- /dev/null |
+++ b/third_party/google_benchmark/src/timers.h |
@@ -0,0 +1,48 @@ |
+#ifndef BENCHMARK_TIMERS_H |
+#define BENCHMARK_TIMERS_H |
+ |
+#include <chrono> |
+#include <string> |
+ |
+namespace benchmark { |
+ |
+// Return the CPU usage of the current process |
+double ProcessCPUUsage(); |
+ |
+// Return the CPU usage of the children of the current process |
+double ChildrenCPUUsage(); |
+ |
+// Return the CPU usage of the current thread |
+double ThreadCPUUsage(); |
+ |
+#if defined(HAVE_STEADY_CLOCK) |
+template <bool HighResIsSteady = std::chrono::high_resolution_clock::is_steady> |
+struct ChooseSteadyClock { |
+ typedef std::chrono::high_resolution_clock type; |
+}; |
+ |
+template <> |
+struct ChooseSteadyClock<false> { |
+ typedef std::chrono::steady_clock type; |
+}; |
+#endif |
+ |
+struct ChooseClockType { |
+#if defined(HAVE_STEADY_CLOCK) |
+ typedef ChooseSteadyClock<>::type type; |
+#else |
+ typedef std::chrono::high_resolution_clock type; |
+#endif |
+}; |
+ |
+inline double ChronoClockNow() { |
+ typedef ChooseClockType::type ClockType; |
+ using FpSeconds = std::chrono::duration<double, std::chrono::seconds::period>; |
+ return FpSeconds(ClockType::now().time_since_epoch()).count(); |
+} |
+ |
+std::string LocalDateTimeString(); |
+ |
+} // end namespace benchmark |
+ |
+#endif // BENCHMARK_TIMERS_H |