mirror of
https://github.com/sharkdp/hyperfine.git
synced 2026-11-01 17:00:18 +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 super::Exporter;
|
||||||
use crate::benchmark::benchmark_result::BenchmarkResult;
|
use crate::benchmark::benchmark_result::BenchmarkResult;
|
||||||
use crate::options::SortOrder;
|
use crate::options::SortOrder;
|
||||||
use crate::quantity::{second, TimeUnit};
|
use crate::quantity::{FormatQuantity, TimeUnit};
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
|
|
||||||
@@ -19,6 +19,7 @@ impl Exporter for CsvExporter {
|
|||||||
_unit: Option<TimeUnit>,
|
_unit: Option<TimeUnit>,
|
||||||
_sort_order: SortOrder,
|
_sort_order: SortOrder,
|
||||||
) -> Result<Vec<u8>> {
|
) -> Result<Vec<u8>> {
|
||||||
|
const CSV_UNIT: TimeUnit = TimeUnit::Second;
|
||||||
const CSV_PRECISION: usize = 6;
|
const CSV_PRECISION: usize = 6;
|
||||||
|
|
||||||
let mut writer = WriterBuilder::new().from_writer(vec![]);
|
let mut writer = WriterBuilder::new().from_writer(vec![]);
|
||||||
@@ -42,18 +43,18 @@ impl Exporter for CsvExporter {
|
|||||||
for res in results {
|
for res in results {
|
||||||
let mut fields = vec![Cow::Borrowed(res.command.as_bytes())];
|
let mut fields = vec![Cow::Borrowed(res.command.as_bytes())];
|
||||||
for f in &[
|
for f in &[
|
||||||
res.mean_wall_clock_time().get::<second>(),
|
res.mean_wall_clock_time(),
|
||||||
res.measurements
|
res.measurements.stddev().unwrap_or_default(),
|
||||||
.stddev()
|
res.measurements.median(),
|
||||||
.unwrap_or_default()
|
res.measurements.time_user_mean(),
|
||||||
.get::<second>(),
|
res.measurements.time_system_mean(),
|
||||||
res.measurements.median().get::<second>(),
|
res.measurements.min(),
|
||||||
res.measurements.time_user_mean().get::<second>(),
|
res.measurements.max(),
|
||||||
res.measurements.time_system_mean().get::<second>(),
|
|
||||||
res.measurements.min().get::<second>(),
|
|
||||||
res.measurements.max().get::<second>(),
|
|
||||||
] {
|
] {
|
||||||
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() {
|
for v in res.parameters.values() {
|
||||||
fields.push(Cow::Borrowed(v.value.as_bytes()))
|
fields.push(Cow::Borrowed(v.value.as_bytes()))
|
||||||
|
|||||||
Reference in new issue
Block a user