diff options
| author | Eric Fiselier <eric@efcs.ca> | 2016-11-05 00:30:27 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2016-11-05 00:30:27 +0000 |
| commit | fbc9ff244c0da5a8e4e566b70a8fec3a50d88532 (patch) | |
| tree | 4143967ceb2630a5493a109e7a41e237bb34e422 /libcxx/utils/google-benchmark/src/json_reporter.cc | |
| parent | 3a6f331d2d044e15f2e3b54bd776ba882ad06e52 (diff) | |
| download | bcm5719-llvm-fbc9ff244c0da5a8e4e566b70a8fec3a50d88532.tar.gz bcm5719-llvm-fbc9ff244c0da5a8e4e566b70a8fec3a50d88532.zip | |
Upgrade in-tree google benchmark to v1.1
llvm-svn: 286029
Diffstat (limited to 'libcxx/utils/google-benchmark/src/json_reporter.cc')
| -rw-r--r-- | libcxx/utils/google-benchmark/src/json_reporter.cc | 67 |
1 files changed, 26 insertions, 41 deletions
diff --git a/libcxx/utils/google-benchmark/src/json_reporter.cc b/libcxx/utils/google-benchmark/src/json_reporter.cc index 485d30524a2..cea5f9bfa1c 100644 --- a/libcxx/utils/google-benchmark/src/json_reporter.cc +++ b/libcxx/utils/google-benchmark/src/json_reporter.cc @@ -23,7 +23,7 @@ #include <vector> #include "string_util.h" -#include "walltime.h" +#include "timers.h" namespace benchmark { @@ -47,11 +47,13 @@ std::string FormatKV(std::string const& key, int64_t value) { return ss.str(); } -int64_t RoundDouble(double v) { - return static_cast<int64_t>(v + 0.5); +std::string FormatKV(std::string const& key, double value) { + return StringPrintF("\"%s\": %.2f", key.c_str(), value); } -} // end namespace +int64_t RoundDouble(double v) { return static_cast<int64_t>(v + 0.5); } + +} // end namespace bool JSONReporter::ReportContext(const Context& context) { std::ostream& out = GetOutputStream(); @@ -66,14 +68,11 @@ bool JSONReporter::ReportContext(const Context& context) { std::string walltime_value = LocalDateTimeString(); out << indent << FormatKV("date", walltime_value) << ",\n"; - out << indent - << FormatKV("num_cpus", static_cast<int64_t>(context.num_cpus)) + out << indent << FormatKV("num_cpus", static_cast<int64_t>(context.num_cpus)) << ",\n"; - out << indent - << FormatKV("mhz_per_cpu", RoundDouble(context.mhz_per_cpu)) + out << indent << FormatKV("mhz_per_cpu", RoundDouble(context.mhz_per_cpu)) << ",\n"; - out << indent - << FormatKV("cpu_scaling_enabled", context.cpu_scaling_enabled) + out << indent << FormatKV("cpu_scaling_enabled", context.cpu_scaling_enabled) << ",\n"; #if defined(NDEBUG) @@ -118,28 +117,20 @@ void JSONReporter::Finalize() { void JSONReporter::PrintRunData(Run const& run) { std::string indent(6, ' '); std::ostream& out = GetOutputStream(); + out << indent << FormatKV("name", run.benchmark_name) << ",\n"; + if (run.error_occurred) { + out << indent << FormatKV("error_occurred", run.error_occurred) << ",\n"; + out << indent << FormatKV("error_message", run.error_message) << ",\n"; + } + if (!run.report_big_o && !run.report_rms) { + out << indent << FormatKV("iterations", run.iterations) << ",\n"; out << indent - << FormatKV("name", run.benchmark_name) + << FormatKV("real_time", RoundDouble(run.GetAdjustedRealTime())) << ",\n"; - if (run.error_occurred) { - out << indent - << FormatKV("error_occurred", run.error_occurred) - << ",\n"; - out << indent - << FormatKV("error_message", run.error_message) - << ",\n"; - } - if (!run.report_big_o && !run.report_rms) { - out << indent - << FormatKV("iterations", run.iterations) - << ",\n"; - out << indent - << FormatKV("real_time", RoundDouble(run.GetAdjustedRealTime())) - << ",\n"; - out << indent - << FormatKV("cpu_time", RoundDouble(run.GetAdjustedCPUTime())); - out << ",\n" << indent - << FormatKV("time_unit", GetTimeUnitString(run.time_unit)); + out << indent + << FormatKV("cpu_time", RoundDouble(run.GetAdjustedCPUTime())); + out << ",\n" + << indent << FormatKV("time_unit", GetTimeUnitString(run.time_unit)); } else if (run.report_big_o) { out << indent << FormatKV("cpu_coefficient", RoundDouble(run.GetAdjustedCPUTime())) @@ -147,15 +138,11 @@ void JSONReporter::PrintRunData(Run const& run) { out << indent << FormatKV("real_coefficient", RoundDouble(run.GetAdjustedRealTime())) << ",\n"; + out << indent << FormatKV("big_o", GetBigOString(run.complexity)) << ",\n"; + out << indent << FormatKV("time_unit", GetTimeUnitString(run.time_unit)); + } else if (run.report_rms) { out << indent - << FormatKV("big_o", GetBigOString(run.complexity)) - << ",\n"; - out << indent - << FormatKV("time_unit", GetTimeUnitString(run.time_unit)); - } else if(run.report_rms) { - out << indent - << FormatKV("rms", RoundDouble(run.GetAdjustedCPUTime()*100)) - << '%'; + << FormatKV("rms", run.GetAdjustedCPUTime()); } if (run.bytes_per_second > 0.0) { out << ",\n" @@ -168,9 +155,7 @@ void JSONReporter::PrintRunData(Run const& run) { << FormatKV("items_per_second", RoundDouble(run.items_per_second)); } if (!run.report_label.empty()) { - out << ",\n" - << indent - << FormatKV("label", run.report_label); + out << ",\n" << indent << FormatKV("label", run.report_label); } out << '\n'; } |

