Add median run time to CSV and JSON export formats

This commit is contained in:
sharkdp 2019-06-08 13:04:39 +02:00
parent 4a67987079
commit 51f92c527d
5 changed files with 21 additions and 1 deletions

View File

@ -3,7 +3,7 @@ use std::io;
use std::process::Stdio;
use colored::*;
use statistical::{mean, standard_deviation};
use statistical::{mean, median, standard_deviation};
use crate::hyperfine::format::{format_duration, format_duration_unit};
use crate::hyperfine::internal::{get_progress_bar, max, min, MIN_EXECUTION_TIME};
@ -313,6 +313,7 @@ pub fn run_benchmark(
let t_num = times_real.len();
let t_mean = mean(&times_real);
let t_stddev = standard_deviation(&times_real, Some(t_mean));
let t_median = median(&times_real);
let t_min = min(&times_real);
let t_max = max(&times_real);
@ -394,6 +395,7 @@ pub fn run_benchmark(
cmd.get_shell_command(),
t_mean,
t_stddev,
t_median,
user_mean,
system_mean,
t_min,

View File

@ -87,6 +87,7 @@ fn test_asciidoc_table_row() {
String::from("sleep 1"), // command
0.10491992406666667, // mean
0.00397851689425097, // stddev
0.10491992406666667, // median
0.005182013333333333, // user
0.0, // system
0.1003342584, // min
@ -137,6 +138,7 @@ fn test_asciidoc_table_row_command_escape() {
String::from("sleep 1|"), // command
0.10491992406666667, // mean
0.00397851689425097, // stddev
0.10491992406666667, // median
0.005182013333333333, // user
0.0, // system
0.1003342584, // min
@ -174,6 +176,7 @@ fn test_asciidoc() {
String::from("command | 1"),
1.0,
2.0,
1.0,
3.0,
4.0,
5.0,
@ -185,6 +188,7 @@ fn test_asciidoc() {
String::from("command | 2"),
11.0,
12.0,
11.0,
13.0,
14.0,
15.0,

View File

@ -84,6 +84,7 @@ fn test_markdown_format_ms() {
String::from("sleep 0.1"),
0.1057, // mean
0.0016, // std dev
0.1057, // median
0.0009, // user_mean
0.0011, // system_mean
0.1023, // min
@ -96,6 +97,7 @@ fn test_markdown_format_ms() {
String::from("sleep 2"),
2.0050, // mean
0.0020, // std dev
2.0050, // median
0.0009, // user_mean
0.0012, // system_mean
2.0020, // min
@ -129,6 +131,7 @@ fn test_markdown_format_s() {
String::from("sleep 2"),
2.0050, // mean
0.0020, // std dev
2.0050, // median
0.0009, // user_mean
0.0012, // system_mean
2.0020, // min
@ -141,6 +144,7 @@ fn test_markdown_format_s() {
String::from("sleep 0.1"),
0.1057, // mean
0.0016, // std dev
0.1057, // median
0.0009, // user_mean
0.0011, // system_mean
0.1023, // min
@ -173,6 +177,7 @@ fn test_markdown_format_time_unit_s() {
String::from("sleep 0.1"),
0.1057, // mean
0.0016, // std dev
0.1057, // median
0.0009, // user_mean
0.0011, // system_mean
0.1023, // min
@ -185,6 +190,7 @@ fn test_markdown_format_time_unit_s() {
String::from("sleep 2"),
2.0050, // mean
0.0020, // std dev
2.0050, // median
0.0009, // user_mean
0.0012, // system_mean
2.0020, // min
@ -223,6 +229,7 @@ fn test_markdown_format_time_unit_ms() {
String::from("sleep 2"),
2.0050, // mean
0.0020, // std dev
2.0050, // median
0.0009, // user_mean
0.0012, // system_mean
2.0020, // min
@ -235,6 +242,7 @@ fn test_markdown_format_time_unit_ms() {
String::from("sleep 0.1"),
0.1057, // mean
0.0016, // std dev
0.1057, // median
0.0009, // user_mean
0.0011, // system_mean
0.1023, // min

View File

@ -125,6 +125,7 @@ fn test_compute_relative_speed() {
command: name.into(),
mean: mean,
stddev: 1.0,
median: mean,
user: mean,
system: 0.0,
min: mean,

View File

@ -159,6 +159,9 @@ pub struct BenchmarkResult {
/// The standard deviation of all run times
pub stddev: Second,
/// The median run time
pub median: Second,
/// Time spend in user space
pub user: Second,
@ -186,6 +189,7 @@ impl BenchmarkResult {
command: String,
mean: Second,
stddev: Second,
median: Second,
user: Second,
system: Second,
min: Second,
@ -197,6 +201,7 @@ impl BenchmarkResult {
command,
mean,
stddev,
median,
user,
system,
min,