Commit 8bb14160 authored by turneram's avatar turneram
Browse files

Add total average and p99 latency to perf report

parent 7271ddbc
...@@ -577,6 +577,12 @@ double common_average(const std::vector<double>& v) ...@@ -577,6 +577,12 @@ double common_average(const std::vector<double>& v)
return total / std::distance(v.begin() + n, v.end() - n); return total / std::distance(v.begin() + n, v.end() - n);
} }
double total_average(const std::vector<double>& v)
{
double total = std::accumulate(v.begin(), v.end(), 0.0);
return total / std::distance(v.begin(), v.end());
}
std::string perf_group(const operation& op) std::string perf_group(const operation& op)
{ {
auto attr = op.attributes(); auto attr = op.attributes();
...@@ -653,6 +659,8 @@ void program::perf_report(std::ostream& os, ...@@ -653,6 +659,8 @@ void program::perf_report(std::ostream& os,
} }
double total_time = common_average(total_vec); double total_time = common_average(total_vec);
double avg_latency = total_average(total_vec);
double p99_latency = total_vec[static_cast<std::size_t>(total_vec.size() * 0.99) - 1];
double rate = 1000.0 / total_time; double rate = 1000.0 / total_time;
double overhead_time = common_average(overhead_vec); double overhead_time = common_average(overhead_vec);
double overhead_percent = overhead_time * 100.0 / total_time; double overhead_percent = overhead_time * 100.0 / total_time;
...@@ -702,6 +710,8 @@ void program::perf_report(std::ostream& os, ...@@ -702,6 +710,8 @@ void program::perf_report(std::ostream& os,
os << "Batch size: " << batch << std::endl; os << "Batch size: " << batch << std::endl;
os << "Rate: " << rate * batch << "/sec" << std::endl; os << "Rate: " << rate * batch << "/sec" << std::endl;
os << "Total time: " << total_time << "ms" << std::endl; os << "Total time: " << total_time << "ms" << std::endl;
os << "Average latency: " << avg_latency << "ms" << std::endl;
os << "99th percentile latency: " << p99_latency << "ms" << std::endl;
os << "Total instructions time: " << total_instruction_time << "ms" << std::endl; os << "Total instructions time: " << total_instruction_time << "ms" << std::endl;
os << "Overhead time: " << overhead_time << "ms" os << "Overhead time: " << overhead_time << "ms"
<< ", " << calculate_overhead_time << "ms" << std::endl; << ", " << calculate_overhead_time << "ms" << std::endl;
......
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