Frame System Benchmarking (#5834)

* Frame System Benchmarking

* Add to substrate node, avoid divide by zero errors in analysis

* reduce features

* some fixes

* copy pasta
This commit is contained in:
Shawn Tabrizi
2020-04-30 15:46:44 +02:00
committed by GitHub
parent 5b8d3607e9
commit b301451c85
10 changed files with 341 additions and 13 deletions
+19 -7
View File
@@ -138,6 +138,8 @@ impl Analysis {
.collect();
let value_dists = results.iter().map(|(p, vs)| {
// Avoid divide by zero
if vs.len() == 0 { return (p.clone(), 0, 0) }
let total = vs.iter()
.fold(0u128, |acc, v| acc + *v);
let mean = total / vs.len() as u128;
@@ -178,13 +180,23 @@ impl std::fmt::Display for Analysis {
writeln!(f, "\nData points distribution:")?;
writeln!(f, "{} mean µs sigma µs %", self.names.iter().map(|p| format!("{:>5}", p)).collect::<Vec<_>>().join(" "))?;
for (param_values, mean, sigma) in value_dists.iter() {
writeln!(f, "{} {:>8} {:>8} {:>3}.{}%",
param_values.iter().map(|v| format!("{:>5}", v)).collect::<Vec<_>>().join(" "),
ms(*mean),
ms(*sigma),
(sigma * 100 / mean),
(sigma * 1000 / mean % 10)
)?;
if *mean == 0 {
writeln!(f, "{} {:>8} {:>8} {:>3}.{}%",
param_values.iter().map(|v| format!("{:>5}", v)).collect::<Vec<_>>().join(" "),
ms(*mean),
ms(*sigma),
"?",
"?"
)?;
} else {
writeln!(f, "{} {:>8} {:>8} {:>3}.{}%",
param_values.iter().map(|v| format!("{:>5}", v)).collect::<Vec<_>>().join(" "),
ms(*mean),
ms(*sigma),
(sigma * 100 / mean),
(sigma * 1000 / mean % 10)
)?;
}
}
}
if let Some(ref model) = self.model {