Index: third_party/google_benchmark/src/reporter.cc |
diff --git a/third_party/google_benchmark/src/reporter.cc b/third_party/google_benchmark/src/reporter.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..64742426cd3e2a8e7c418aa1768032a0e9148ae6 |
--- /dev/null |
+++ b/third_party/google_benchmark/src/reporter.cc |
@@ -0,0 +1,68 @@ |
+// Copyright 2015 Google Inc. All rights reserved. |
+// |
+// Licensed under the Apache License, Version 2.0 (the "License"); |
+// you may not use this file except in compliance with the License. |
+// You may obtain a copy of the License at |
+// |
+// http://www.apache.org/licenses/LICENSE-2.0 |
+// |
+// Unless required by applicable law or agreed to in writing, software |
+// distributed under the License is distributed on an "AS IS" BASIS, |
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+// See the License for the specific language governing permissions and |
+// limitations under the License. |
+ |
+#include "benchmark/reporter.h" |
+#include "timers.h" |
+ |
+#include <cstdlib> |
+ |
+#include <iostream> |
+#include <tuple> |
+#include <vector> |
+ |
+#include "check.h" |
+#include "stat.h" |
+ |
+namespace benchmark { |
+ |
+BenchmarkReporter::BenchmarkReporter() |
+ : output_stream_(&std::cout), error_stream_(&std::cerr) {} |
+ |
+BenchmarkReporter::~BenchmarkReporter() {} |
+ |
+void BenchmarkReporter::PrintBasicContext(std::ostream *out_ptr, |
+ Context const &context) { |
+ CHECK(out_ptr) << "cannot be null"; |
+ auto &Out = *out_ptr; |
+ |
+ Out << "Run on (" << context.num_cpus << " X " << context.mhz_per_cpu |
+ << " MHz CPU " << ((context.num_cpus > 1) ? "s" : "") << ")\n"; |
+ |
+ Out << LocalDateTimeString() << "\n"; |
+ |
+ if (context.cpu_scaling_enabled) { |
+ Out << "***WARNING*** CPU scaling is enabled, the benchmark " |
+ "real time measurements may be noisy and will incur extra " |
+ "overhead.\n"; |
+ } |
+ |
+#ifndef NDEBUG |
+ Out << "***WARNING*** Library was built as DEBUG. Timings may be " |
+ "affected.\n"; |
+#endif |
+} |
+ |
+double BenchmarkReporter::Run::GetAdjustedRealTime() const { |
+ double new_time = real_accumulated_time * GetTimeUnitMultiplier(time_unit); |
+ if (iterations != 0) new_time /= static_cast<double>(iterations); |
+ return new_time; |
+} |
+ |
+double BenchmarkReporter::Run::GetAdjustedCPUTime() const { |
+ double new_time = cpu_accumulated_time * GetTimeUnitMultiplier(time_unit); |
+ if (iterations != 0) new_time /= static_cast<double>(iterations); |
+ return new_time; |
+} |
+ |
+} // end namespace benchmark |