Commit 9a5072d1 by jpmag Committed by Dominic Hamon

Fixes #357: broken RMS values when time unit is set. (#362)

parent 2fa6dfff
...@@ -295,6 +295,11 @@ std::vector<BenchmarkReporter::Run> ComputeBigO( ...@@ -295,6 +295,11 @@ std::vector<BenchmarkReporter::Run> ComputeBigO(
big_o.report_big_o = true; big_o.report_big_o = true;
big_o.complexity = result_cpu.complexity; big_o.complexity = result_cpu.complexity;
// All the time results are reported after being multiplied by the
// time unit multiplier. But since RMS is a relative quantity it
// should not be multiplied at all. So, here, we _divide_ it by the
// multiplier so that when it is multiplied later the result is the
// correct one.
double multiplier = GetTimeUnitMultiplier(reports[0].time_unit); double multiplier = GetTimeUnitMultiplier(reports[0].time_unit);
// Only add label to mean/stddev if it is same for all runs // Only add label to mean/stddev if it is same for all runs
...@@ -307,6 +312,9 @@ std::vector<BenchmarkReporter::Run> ComputeBigO( ...@@ -307,6 +312,9 @@ std::vector<BenchmarkReporter::Run> ComputeBigO(
rms.cpu_accumulated_time = result_cpu.rms / multiplier; rms.cpu_accumulated_time = result_cpu.rms / multiplier;
rms.report_rms = true; rms.report_rms = true;
rms.complexity = result_cpu.complexity; rms.complexity = result_cpu.complexity;
// don't forget to keep the time unit, or we won't be able to
// recover the correct value.
rms.time_unit = reports[0].time_unit;
results.push_back(big_o); results.push_back(big_o);
results.push_back(rms); results.push_back(rms);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment