/// Parse the given input, returning elapsed time in nanoseconds. fn do_parse(input: &str) -> u64 { letmut sink = NullSink {}; letmut parser = Parser::new_from_str(input); let begin = std::time::Instant::now();
parser.load(&mut sink, true).unwrap(); let end = std::time::Instant::now();
(end - begin).as_nanos() as u64
}
fn main() { let args: Vec<_> = env::args().collect(); let iterations: u64 = args[2].parse().unwrap(); let output_yaml = args.len() == 4 && args[3] == "--output-yaml"; letmut f = File::open(&args[1]).unwrap(); letmut s = String::new();
f.read_to_string(&mut s).unwrap();
// Compute relevant metrics. let sum: u64 = times.iter().sum(); let avg = sum / iterations; let min = sorted_times[0]; let max = sorted_times[(iterations - 1) as usize]; let percentile95 = sorted_times[((95 * iterations) / 100) as usize];
if output_yaml {
println!("parser: yaml-rust2");
println!("input: {}", args[1]);
println!("average: {avg}");
println!("min: {min}");
println!("max: {max}");
println!("percentile95: {percentile95}");
println!("iterations: {iterations}");
println!("times:"); for time in × {
println!(" - {time}");
}
} else {
println!("Average: {}s", (avg as f64) / 1_000_000_000.0);
println!("Min: {}s", (min as f64) / 1_000_000_000.0);
println!("Max: {}s", (max as f64) / 1_000_000_000.0);
println!("95%: {}s", (percentile95 as f64) / 1_000_000_000.0);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.