| 685 | } |
| 686 | |
| 687 | void PrintRunData(const Run& run) override { |
| 688 | std::ostream& out = GetOutputStream(); |
| 689 | out << std::left << std::setw(static_cast<int>(name_field_width_)) |
| 690 | << run.benchmark_name() << " "; |
| 691 | |
| 692 | if (run.run_type != Run::RT_Aggregate || |
| 693 | run.aggregate_unit == benchmark::StatisticUnit::kTime) { |
| 694 | out << std::right << std::setw(10) << FormatTimeValue(run.GetAdjustedRealTime()) |
| 695 | << " " << std::setw(4) << benchmark::GetTimeUnitString(run.time_unit) |
| 696 | << " " << std::setw(10) << FormatTimeValue(run.GetAdjustedCPUTime()) |
| 697 | << " " << std::setw(4) << benchmark::GetTimeUnitString(run.time_unit) |
| 698 | << " "; |
| 699 | } else { |
| 700 | out << std::right << std::setw(10) << std::fixed << std::setprecision(2) |
| 701 | << (100.0 * run.real_accumulated_time) << " " << std::setw(4) << "%" |
| 702 | << " " << std::setw(10) << std::fixed << std::setprecision(2) |
| 703 | << (100.0 * run.cpu_accumulated_time) << " " << std::setw(4) << "%" |
| 704 | << " "; |
| 705 | } |
| 706 | |
| 707 | out << std::right << std::setw(10) << run.iterations; |
| 708 | |
| 709 | if (!run.counters.empty()) { |
| 710 | out << " " << std::setw(16) << FormatThroughputValue(run); |
| 711 | if (run.counters.count("LoadMs") != 0) { |
| 712 | out << " " << std::setw(12) << FormatCounterValue(run, "LoadMs", " ms") |
| 713 | << " " << std::setw(12) |
| 714 | << FormatCounterValue(run, "ConvertMs", " ms") << " " |
| 715 | << std::setw(12) << FormatCounterValue(run, "WriteMs", " ms") |
| 716 | << " " << std::setw(12) |
| 717 | << FormatCounterValue(run, "TotalMs", " ms"); |
| 718 | } |
| 719 | } |
| 720 | |
| 721 | if (!run.report_label.empty()) { |
| 722 | out << " " << run.report_label; |
| 723 | } |
| 724 | |
| 725 | out << "\n"; |
| 726 | } |
| 727 | |
| 728 | private: |
| 729 | std::string current_group_; |
nothing calls this directly
no test coverage detected