diff --git a/scripts/plot_parametrized.py b/scripts/plot_parametrized.py index 48f354c15..d96177357 100755 --- a/scripts/plot_parametrized.py +++ b/scripts/plot_parametrized.py @@ -50,11 +50,11 @@ def extract_parameters(results): "benchmarks must all have the same parameter name, but found: %s" % sorted(names) ) - return (next(iter(names)), values) + return (next(iter(names)), list(values)) def unique_parameter(benchmark): - """Return the unique parameter `(name: str, value: float)`, or dies.""" + """Return the unique parameter `(name: str, value: float)`, or die.""" params_dict = benchmark.get("parameters", {}) if not params_dict: die("benchmarks must have exactly one parameter, but found none") @@ -63,7 +63,8 @@ def unique_parameter(benchmark): "benchmarks must have exactly one parameter, but found multiple: %s" % sorted(params_dict) ) - return next(iter(params_dict.items())) + [(name, value)] = params_dict.items() + return (name, float(value)) parameter_name = None @@ -80,7 +81,6 @@ def unique_parameter(benchmark): ) parameter_name = this_parameter_name - parameter_values = [float(pv) for pv in parameter_values] times_mean = [b["mean"] for b in results] times_stddev = [b["stddev"] for b in results] diff --git a/src/hyperfine/export/csv.rs b/src/hyperfine/export/csv.rs index 6260a2a46..28593a44a 100644 --- a/src/hyperfine/export/csv.rs +++ b/src/hyperfine/export/csv.rs @@ -16,16 +16,16 @@ impl Exporter for CsvExporter { let mut writer = WriterBuilder::new().from_writer(vec![]); { - let mut headers: Vec = [ + let mut headers: Vec> = [ // The list of times cannot be exported to the CSV file - omit it. "command", "mean", "stddev", "median", "user", "system", "min", "max", ] .iter() - .map(|x| (*x).to_string()) + .map(|x| Cow::Borrowed(x.as_bytes())) .collect(); if let Some(res) = results.first() { for param_name in res.parameters.keys() { - headers.push(format!("parameter_{}", param_name)); + headers.push(Cow::Owned(format!("parameter_{}", param_name).into_bytes())); } } writer.write_record(headers)?;