mirror of
https://github.com/sharkdp/hyperfine.git
synced 2026-10-28 08:08:58 +00:00
Format CSV measurements through FormatQuantity
This commit is contained in:
1 parent
4aa36c8051
commit
16f53eb8d6
1 file changed
+13
-12
+13
-12
@@ -5,7 +5,7 @@ use csv::WriterBuilder;
|
||||
use super::Exporter;
|
||||
use crate::benchmark::benchmark_result::BenchmarkResult;
|
||||
use crate::options::SortOrder;
|
||||
use crate::quantity::{second, TimeUnit};
|
||||
use crate::quantity::{FormatQuantity, TimeUnit};
|
||||
|
||||
use anyhow::Result;
|
||||
|
||||
@@ -19,6 +19,7 @@ impl Exporter for CsvExporter {
|
||||
_unit: Option<TimeUnit>,
|
||||
_sort_order: SortOrder,
|
||||
) -> Result<Vec<u8>> {
|
||||
const CSV_UNIT: TimeUnit = TimeUnit::Second;
|
||||
const CSV_PRECISION: usize = 6;
|
||||
|
||||
let mut writer = WriterBuilder::new().from_writer(vec![]);
|
||||
@@ -42,18 +43,18 @@ impl Exporter for CsvExporter {
|
||||
for res in results {
|
||||
let mut fields = vec![Cow::Borrowed(res.command.as_bytes())];
|
||||
for f in &[
|
||||
res.mean_wall_clock_time().get::<second>(),
|
||||
res.measurements
|
||||
.stddev()
|
||||
.unwrap_or_default()
|
||||
.get::<second>(),
|
||||
res.measurements.median().get::<second>(),
|
||||
res.measurements.time_user_mean().get::<second>(),
|
||||
res.measurements.time_system_mean().get::<second>(),
|
||||
res.measurements.min().get::<second>(),
|
||||
res.measurements.max().get::<second>(),
|
||||
res.mean_wall_clock_time(),
|
||||
res.measurements.stddev().unwrap_or_default(),
|
||||
res.measurements.median(),
|
||||
res.measurements.time_user_mean(),
|
||||
res.measurements.time_system_mean(),
|
||||
res.measurements.min(),
|
||||
res.measurements.max(),
|
||||
] {
|
||||
fields.push(Cow::Owned(format!("{f:.CSV_PRECISION$}").into_bytes()))
|
||||
fields.push(Cow::Owned(
|
||||
f.format_with_precision(CSV_UNIT, CSV_PRECISION)
|
||||
.into_bytes(),
|
||||
))
|
||||
}
|
||||
for v in res.parameters.values() {
|
||||
fields.push(Cow::Borrowed(v.value.as_bytes()))
|
||||
|
||||
Reference in new issue
Block a user