summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcyqsimon <28627918+cyqsimon@users.noreply.github.com>2023-11-02 14:00:58 +0800
committerGitHub <noreply@github.com>2023-11-02 14:00:58 +0800
commit16a6f9eec6079a08d31159e296f6009034bd533c (patch)
treeb962fadd053b67a5e0155fc1410631a15050b7cb
parentcf9b9f063420b153225d4e2ff49e22a2f97dbddf (diff)
Display bandwidth in different unit families (#328)
* Allow selecting unit families - Supported units are {binary,SI}-{bytes,bits} * Fix typo * Better error msg in the unreachable case * - I can't believe I did this. Frankly, terrible. * Add unit test * Add peta&pebi units to be absolutely future-proof * Minor code style improvement
-rw-r--r--Cargo.lock1
-rw-r--r--Cargo.toml1
-rw-r--r--src/cli.rs6
-rw-r--r--src/display/components/display_bandwidth.rs126
-rw-r--r--src/display/components/header_details.rs3
-rw-r--r--src/display/components/snapshots/bandwhich__display__components__display_bandwidth__tests__bandwidth_formatting.snap753
-rw-r--r--src/display/components/table.rs28
-rw-r--r--src/display/ui.rs1
-rw-r--r--src/display/ui_state.rs2
9 files changed, 904 insertions, 17 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 816e39d..5ae051c 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -187,6 +187,7 @@ dependencies = [
"resolv-conf",
"rstest",
"simplelog",
+ "strum",
"sysinfo",
"thiserror",
"tokio",
diff --git a/Cargo.toml b/Cargo.toml
index feb17b8..fd2307b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -41,6 +41,7 @@ thiserror = "1.0.50"
tokio = { version = "1.33", features = ["rt", "sync"] }
trust-dns-resolver = "0.23.2"
unicode-width = "0.1.11"
+strum = { version = "0.25.0", features = ["derive"] }
[target.'cfg(target_os = "linux")'.dependencies]
procfs = "0.16.0"
diff --git a/src/cli.rs b/src/cli.rs
index ed2dc22..644a500 100644
--- a/src/cli.rs
+++ b/src/cli.rs
@@ -4,6 +4,8 @@ use clap::{Args, Parser};
use clap_verbosity_flag::{InfoLevel, Verbosity};
use derivative::Derivative;
+use crate::display::BandwidthUnitFamily;
+
#[derive(Clone, Debug, Derivative, Parser)]
#[derivative(Default)]
#[command(name = "bandwhich", version)]
@@ -54,6 +56,10 @@ pub struct RenderOpts {
/// Show remote addresses table only
pub addresses: bool,
+ #[arg(short, long, value_enum, default_value_t)]
+ /// Choose a specific family of units
+ pub unit_family: BandwidthUnitFamily,
+
#[arg(short, long)]
/// Show total (cumulative) usages
pub total_utilization: bool,
diff --git a/src/display/components/display_bandwidth.rs b/src/display/components/display_bandwidth.rs
index 4c7e010..5d7a510 100644
--- a/src/display/components/display_bandwidth.rs
+++ b/src/display/components/display_bandwidth.rs
@@ -1,24 +1,126 @@
use std::fmt;
+use clap::ValueEnum;
+use strum::EnumIter;
+
+#[derive(Copy, Clone, Debug)]
pub struct DisplayBandwidth {
pub bandwidth: f64,
+ pub unit_family: BandwidthUnitFamily,
}
impl fmt::Display for DisplayBandwidth {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- // see https://github.com/rust-lang/rust/issues/41620
- let (div, suffix) = if self.bandwidth >= 1e12 {
- (1_099_511_627_776.0, "TiB")
- } else if self.bandwidth >= 1e9 {
- (1_073_741_824.0, "GiB")
- } else if self.bandwidth >= 1e6 {
- (1_048_576.0, "MiB")
- } else if self.bandwidth >= 1e3 {
- (1024.0, "KiB")
- } else {
- (1.0, "B")
+ let (div, suffix) = self.unit_family.get_unit_for(self.bandwidth);
+ write!(f, "{:.2}{suffix}", self.bandwidth / div)
+ }
+}
+
+#[derive(Copy, Clone, Debug, Default, Eq, PartialEq, ValueEnum, EnumIter)]
+pub enum BandwidthUnitFamily {
+ #[default]
+ /// bytes, in powers of 2^10
+ BinBytes,
+ /// bits, in powers of 2^10
+ BinBits,
+ /// bytes, in powers of 10^3
+ SiBytes,
+ /// bits, in powers of 10^3
+ SiBits,
+}
+impl BandwidthUnitFamily {
+ #[inline]
+ /// Returns an array of tuples, corresponding to the steps of this unit family.
+ ///
+ /// Each step contains a divisor, an upper bound, and a unit suffix.
+ fn steps(&self) -> [(f64, f64, &'static str); 6] {
+ /// The fraction of the next unit the value has to meet to step up.
+ const STEP_UP_FRAC: f64 = 0.95;
+ /// Binary base: 2^10.
+ const BB: f64 = 1024.0;
+
+ use BandwidthUnitFamily as F;
+ // probably could macro this stuff, but I'm too lazy
+ match self {
+ F::BinBytes => [
+ (1.0, BB * STEP_UP_FRAC, "B"),
+ (BB, BB.powi(2) * STEP_UP_FRAC, "KiB"),
+ (BB.powi(2), BB.powi(3) * STEP_UP_FRAC, "MiB"),
+ (BB.powi(3), BB.powi(4) * STEP_UP_FRAC, "GiB"),
+ (BB.powi(4), BB.powi(5) * STEP_UP_FRAC, "TiB"),
+ (BB.powi(5), f64::MAX, "PiB"),
+ ],
+ F::BinBits => [
+ (1.0 / 8.0, BB / 8.0 * STEP_UP_FRAC, "b"),
+ (BB / 8.0, BB.powi(2) / 8.0 * STEP_UP_FRAC, "Kib"),
+ (BB.powi(2) / 8.0, BB.powi(3) / 8.0 * STEP_UP_FRAC, "Mib"),
+ (BB.powi(3) / 8.0, BB.powi(4) / 8.0 * STEP_UP_FRAC, "Gib"),
+ (BB.powi(4) / 8.0, BB.powi(5) / 8.0 * STEP_UP_FRAC, "Tib"),
+ (BB.powi(5) / 8.0, f64::MAX, "Pib"),
+ ],
+ F::SiBytes => [
+ (1.0, 1e3 * STEP_UP_FRAC, "B"),
+ (1e3, 1e6 * STEP_UP_FRAC, "kB"),
+ (1e6, 1e9 * STEP_UP_FRAC, "MB"),
+ (1e9, 1e12 * STEP_UP_FRAC, "GB"),
+ (1e12, 1e15 * STEP_UP_FRAC, "TB"),
+ (1e15, f64::MAX, "PB"),
+ ],
+ F::SiBits => [
+ (1.0 / 8.0, 1e3 / 8.0 * STEP_UP_FRAC, "b"),
+ (1e3 / 8.0, 1e6 / 8.0 * STEP_UP_FRAC, "kb"),
+ (1e6 / 8.0, 1e9 / 8.0 * STEP_UP_FRAC, "Mb"),
+ (1e9 / 8.0, 1e12 / 8.0 * STEP_UP_FRAC, "Gb"),
+ (1e12 / 8.0, 1e15 / 8.0 * STEP_UP_FRAC, "Tb"),
+ (1e15 / 8.0, f64::MAX, "Pb"),
+ ],
+ }
+ }
+
+ /// Select a unit for a given value, returning its divisor and suffix.
+ fn get_unit_for(&self, bytes: f64) -> (f64, &'static str) {
+ let Some((div, _, suffix)) = self
+ .steps()
+ .into_iter()
+ .find(|&(_, bound, _)| bound >= bytes)
+ else {
+ panic!("Cannot select an appropriate unit for {bytes:.2}B.")
};
- write!(f, "{:.2}{suffix}", self.bandwidth / div)
+ (div, suffix)
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use std::fmt::Write;
+
+ use insta::assert_snapshot;
+ use itertools::Itertools;
+ use strum::IntoEnumIterator;
+
+ use crate::display::{BandwidthUnitFamily, DisplayBandwidth};
+
+ #[test]
+ fn bandwidth_formatting() {
+ let test_bandwidths_formatted = BandwidthUnitFamily::iter()
+ .cartesian_product(
+ // I feel like this is a decent selection of values
+ (-6..60)
+ .map(|exp| 2f64.powi(exp))
+ .chain((-5..45).map(|exp| 2.5f64.powi(exp)))
+ .chain((-4..38).map(|exp| 3f64.powi(exp)))
+ .chain((-3..26).map(|exp| 5f64.powi(exp))),
+ )
+ .map(|(unit_family, bandwidth)| DisplayBandwidth {
+ bandwidth,
+ unit_family,
+ })
+ .fold(String::new(), |mut buf, b| {
+ let _ = writeln!(buf, "{b:?}: {b}");
+ buf
+ });
+
+ assert_snapshot!(test_bandwidths_formatted);
}
}
diff --git a/src/display/components/header_details.rs b/src/display/components/header_details.rs
index 373f09e..234ad1e 100644
--- a/src/display/components/header_details.rs
+++ b/src/display/components/header_details.rs
@@ -78,11 +78,14 @@ impl<'a> HeaderDetails<'a> {
} else {
"Rate"
};
+ let unit_family = self.state.unit_family;
let up = DisplayBandwidth {
bandwidth: self.state.total_bytes_uploaded as f64,
+ unit_family,
};
let down = DisplayBandwidth {
bandwidth: self.state.total_bytes_downloaded as f64,
+ unit_family,
};
let paused = if self.paused { " [PAUSED]" } else { "" };
format!(" Total {t} (Up / Down): {up} / {down}{paused}")
diff --git a/src/display/components/snapshots/bandwhich__display__components__display_bandwidth__tests__bandwidth_formatting.snap b/src/display/components/snapshots/bandwhich__display__components__display_bandwidth__tests__bandwidth_formatting.snap
new file mode 100644
index 0000000..1c97582
--- /dev/null
+++ b/src/display/components/snapshots/bandwhich__display__components__display_bandwidth__tests__bandwidth_formatting.snap
@@ -0,0 +1,753 @@
+---
+source: src/display/components/display_bandwidth.rs
+expression: test_bandwidths_formatted
+---
+DisplayBandwidth { bandwidth: 0.015625, unit_family: BinBytes }: 0.02B
+DisplayBandwidth { bandwidth: 0.03125, unit_family: BinBytes }: 0.03B
+DisplayBandwidth { bandwidth: 0.0625, unit_family: BinBytes }: 0.06B
+DisplayBandwidth { bandwidth: 0.125, unit_family: BinBytes }: 0.12B
+DisplayBandwidth { bandwidth: 0.25, unit_family: BinBytes }: 0.25B
+DisplayBandwidth { bandwidth: 0.5, unit_family: BinBytes }: 0.50B
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBytes }: 1.00B
+DisplayBandwidth { bandwidth: 2.0, unit_family: BinBytes }: 2.00B
+DisplayBandwidth { bandwidth: 4.0, unit_family: BinBytes }: 4.00B
+DisplayBandwidth { bandwidth: 8.0, unit_family: BinBytes }: 8.00B
+DisplayBandwidth { bandwidth: 16.0, unit_family: BinBytes }: 16.00B
+DisplayBandwidth { bandwidth: 32.0, unit_family: BinBytes }: 32.00B
+DisplayBandwidth { bandwidth: 64.0, unit_family: BinBytes }: 64.00B
+DisplayBandwidth { bandwidth: 128.0, unit_family: BinBytes }: 128.00B
+DisplayBandwidth { bandwidth: 256.0, unit_family: BinBytes }: 256.00B
+DisplayBandwidth { bandwidth: 512.0, unit_family: BinBytes }: 512.00B
+DisplayBandwidth { bandwidth: 1024.0, unit_family: BinBytes }: 1.00KiB
+DisplayBandwidth { bandwidth: 2048.0, unit_family: BinBytes }: 2.00KiB
+DisplayBandwidth { bandwidth: 4096.0, unit_family: BinBytes }: 4.00KiB
+DisplayBandwidth { bandwidth: 8192.0, unit_family: BinBytes }: 8.00KiB
+DisplayBandwidth { bandwidth: 16384.0, unit_family: BinBytes }: 16.00KiB
+DisplayBandwidth { bandwidth: 32768.0, unit_family: BinBytes }: 32.00KiB
+DisplayBandwidth { bandwidth: 65536.0, unit_family: BinBytes }: 64.00KiB
+DisplayBandwidth { bandwidth: 131072.0, unit_family: BinBytes }: 128.00KiB
+DisplayBandwidth { bandwidth: 262144.0, unit_family: BinBytes }: 256.00KiB
+DisplayBandwidth { bandwidth: 524288.0, unit_family: BinBytes }: 512.00KiB
+DisplayBandwidth { bandwidth: 1048576.0, unit_family: BinBytes }: 1.00MiB
+DisplayBandwidth { bandwidth: 2097152.0, unit_family: BinBytes }: 2.00MiB
+DisplayBandwidth { bandwidth: 4194304.0, unit_family: BinBytes }: 4.00MiB
+DisplayBandwidth { bandwidth: 8388608.0, unit_family: BinBytes }: 8.00MiB
+DisplayBandwidth { bandwidth: 16777216.0, unit_family: BinBytes }: 16.00MiB
+DisplayBandwidth { bandwidth: 33554432.0, unit_family: BinBytes }: 32.00MiB
+DisplayBandwidth { bandwidth: 67108864.0, unit_family: BinBytes }: 64.00MiB
+DisplayBandwidth { bandwidth: 134217728.0, unit_family: BinBytes }: 128.00MiB
+DisplayBandwidth { bandwidth: 268435456.0, unit_family: BinBytes }: 256.00MiB
+DisplayBandwidth { bandwidth: 536870912.0, unit_family: BinBytes }: 512.00MiB
+DisplayBandwidth { bandwidth: 1073741824.0, unit_family: BinBytes }: 1.00GiB
+DisplayBandwidth { bandwidth: 2147483648.0, unit_family: BinBytes }: 2.00GiB
+DisplayBandwidth { bandwidth: 4294967296.0, unit_family: BinBytes }: 4.00GiB
+DisplayBandwidth { bandwidth: 8589934592.0, unit_family: BinBytes }: 8.00GiB
+DisplayBandwidth { bandwidth: 17179869184.0, unit_family: BinBytes }: 16.00GiB
+DisplayBandwidth { bandwidth: 34359738368.0, unit_family: BinBytes }: 32.00GiB
+DisplayBandwidth { bandwidth: 68719476736.0, unit_family: BinBytes }: 64.00GiB
+DisplayBandwidth { bandwidth: 137438953472.0, unit_family: BinBytes }: 128.00GiB
+DisplayBandwidth { bandwidth: 274877906944.0, unit_family: BinBytes }: 256.00GiB
+DisplayBandwidth { bandwidth: 549755813888.0, unit_family: BinBytes }: 512.00GiB
+DisplayBandwidth { bandwidth: 1099511627776.0, unit_family: BinBytes }: 1.00TiB
+DisplayBandwidth { bandwidth: 2199023255552.0, unit_family: BinBytes }: 2.00TiB
+DisplayBandwidth { bandwidth: 4398046511104.0, unit_family: BinBytes }: 4.00TiB
+DisplayBandwidth { bandwidth: 8796093022208.0, unit_family: BinBytes }: 8.00TiB
+DisplayBandwidth { bandwidth: 17592186044416.0, unit_family: BinBytes }: 16.00TiB
+DisplayBandwidth { bandwidth: 35184372088832.0, unit_family: BinBytes }: 32.00TiB
+DisplayBandwidth { bandwidth: 70368744177664.0, unit_family: BinBytes }: 64.00TiB
+DisplayBandwidth { bandwidth: 140737488355328.0, unit_family: BinBytes }: 128.00TiB
+DisplayBandwidth { bandwidth: 281474976710656.0, unit_family: BinBytes }: 256.00TiB
+DisplayBandwidth { bandwidth: 562949953421312.0, unit_family: BinBytes }: 512.00TiB
+DisplayBandwidth { bandwidth: 1125899906842624.0, unit_family: BinBytes }: 1.00PiB
+DisplayBandwidth { bandwidth: 2251799813685248.0, unit_family: BinBytes }: 2.00PiB
+DisplayBandwidth { bandwidth: 4503599627370496.0, unit_family: BinBytes }: 4.00PiB
+DisplayBandwidth { bandwidth: 9007199254740992.0, unit_family: BinBytes }: 8.00PiB
+DisplayBandwidth { bandwidth: 1.8014398509481984e16, unit_family: BinBytes }: 16.00PiB
+DisplayBandwidth { bandwidth: 3.602879701896397e16, unit_family: BinBytes }: 32.00PiB
+DisplayBandwidth { bandwidth: 7.205759403792794e16, unit_family: BinBytes }: 64.00PiB
+DisplayBandwidth { bandwidth: 1.4411518807585587e17, unit_family: BinBytes }: 128.00PiB
+DisplayBandwidth { bandwidth: 2.8823037615171174e17, unit_family: BinBytes }: 256.00PiB
+DisplayBandwidth { bandwidth: 5.764607523034235e17, unit_family: BinBytes }: 512.00PiB
+DisplayBandwidth { bandwidth: 0.01024, unit_family: BinBytes }: 0.01B
+DisplayBandwidth { bandwidth: 0.0256, unit_family: BinBytes }: 0.03B
+DisplayBandwidth { bandwidth: 0.064, unit_family: BinBytes }: 0.06B
+DisplayBandwidth { bandwidth: 0.16, unit_family: BinBytes }: 0.16B
+DisplayBandwidth { bandwidth: 0.4, unit_family: BinBytes }: 0.40B
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBytes }: 1.00B
+DisplayBandwidth { bandwidth: 2.5, unit_family: BinBytes }: 2.50B
+DisplayBandwidth { bandwidth: 6.25, unit_family: BinBytes }: 6.25B
+DisplayBandwidth { bandwidth: 15.625, unit_family: BinBytes }: 15.62B
+DisplayBandwidth { bandwidth: 39.0625, unit_family: BinBytes }: 39.06B
+DisplayBandwidth { bandwidth: 97.65625, unit_family: BinBytes }: 97.66B
+DisplayBandwidth { bandwidth: 244.140625, unit_family: BinBytes }: 244.14B
+DisplayBandwidth { bandwidth: 610.3515625, unit_family: BinBytes }: 610.35B
+DisplayBandwidth { bandwidth: 1525.87890625, unit_family: BinBytes }: 1.49KiB
+DisplayBandwidth { bandwidth: 3814.697265625, unit_family: BinBytes }: 3.73KiB
+DisplayBandwidth { bandwidth: 9536.7431640625, unit_family: BinBytes }: 9.31KiB
+DisplayBandwidth { bandwidth: 23841.85791015625, unit_family: BinBytes }: 23.28KiB
+DisplayBandwidth { bandwidth: 59604.644775390625, unit_family: BinBytes }: 58.21KiB
+DisplayBandwidth { bandwidth: 149011.61193847656, unit_family: BinBytes }: 145.52KiB
+DisplayBandwidth { bandwidth: 372529.0298461914, unit_family: BinBytes }: 363.80KiB
+DisplayBandwidth { bandwidth: 931322.5746154785, unit_family: BinBytes }: 909.49KiB
+DisplayBandwidth { bandwidth: 2328306.4365386963, unit_family: BinBytes }: 2.22MiB
+DisplayBandwidth { bandwidth: 5820766.091346741, unit_family: BinBytes }: 5.55MiB
+DisplayBandwidth { bandwidth: 14551915.228366852, unit_family: BinBytes }: 13.88MiB
+DisplayBandwidth { bandwidth: 36379788.07091713, unit_family: BinBytes }: 34.69MiB
+DisplayBandwidth { bandwidth: 90949470.17729282, unit_family: BinBytes }: 86.74MiB
+DisplayBandwidth { bandwidth: 227373675.44323206, unit_family: BinBytes }: 216.84MiB
+DisplayBandwidth { bandwidth: 568434188.6080801, unit_family: BinBytes }: 542.10MiB
+DisplayBandwidth { bandwidth: 1421085471.5202003, unit_family: BinBytes }: 1.32GiB
+DisplayBandwidth { bandwidth: 3552713678.800501, unit_family: BinBytes }: 3.31GiB
+DisplayBandwidth { bandwidth: 8881784197.001253, unit_family: BinBytes }: 8.27GiB
+DisplayBandwidth { bandwidth: 22204460492.50313, unit_family: BinBytes }: 20.68GiB
+DisplayBandwidth { bandwidth: 55511151231.25783, unit_family: BinBytes }: 51.70GiB
+DisplayBandwidth { bandwidth: 138777878078.14456, unit_family: BinBytes }: 129.25GiB
+DisplayBandwidth { bandwidth: 346944695195.3614, unit_family: BinBytes }: 323.12GiB
+DisplayBandwidth { bandwidth: 867361737988.4036, unit_family: BinBytes }: 807.79GiB
+DisplayBandwidth { bandwidth: 2168404344971.0088, unit_family: BinBytes }: 1.97TiB
+DisplayBandwidth { bandwidth: 5421010862427.522, unit_family: BinBytes }: 4.93TiB
+DisplayBandwidth { bandwidth: 13552527156068.807, unit_family: BinBytes }: 12.33TiB
+DisplayBandwidth { bandwidth: 33881317890172.016, unit_family: BinBytes }: 30.81TiB
+DisplayBandwidth { bandwidth: 84703294725430.03, unit_family: BinBytes }: 77.04TiB
+DisplayBandwidth { bandwidth: 211758236813575.1, unit_family: BinBytes }: 192.59TiB
+DisplayBandwidth { bandwidth: 529395592033937.75, unit_family: BinBytes }: 481.48TiB
+DisplayBandwidth { bandwidth: 1323488980084844.3, unit_family: BinBytes }: 1.18PiB
+DisplayBandwidth { bandwidth: 3308722450212111.0, unit_family: BinBytes }: 2.94PiB
+DisplayBandwidth { bandwidth: 8271806125530277.0, unit_family: BinBytes }: 7.35PiB
+DisplayBandwidth { bandwidth: 2.0679515313825692e16, unit_family: BinBytes }: 18.37PiB
+DisplayBandwidth { bandwidth: 5.169878828456423e16, unit_family: BinBytes }: 45.92PiB
+DisplayBandwidth { bandwidth: 1.2924697071141058e17, unit_family: BinBytes }: 114.79PiB
+DisplayBandwidth { bandwidth: 3.2311742677852646e17, unit_family: BinBytes }: 286.99PiB
+DisplayBandwidth { bandwidth: 0.012345679012345678, unit_family: BinBytes }: 0.01B
+DisplayBandwidth { bandwidth: 0.037037037037037035, unit_family: BinBytes }: 0.04B
+DisplayBandwidth { bandwidth: 0.1111111111111111, unit_family: BinBytes }: 0.11B
+DisplayBandwidth { bandwidth: 0.3333333333333333, unit_family: BinBytes }: 0.33B
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBytes }: 1.00B
+DisplayBandwidth { bandwidth: 3.0, unit_family: BinBytes }: 3.00B
+DisplayBandwidth { bandwidth: 9.0, unit_family: BinBytes }: 9.00B
+DisplayBandwidth { bandwidth: 27.0, unit_family: BinBytes }: 27.00B
+DisplayBandwidth { bandwidth: 81.0, unit_family: BinBytes }: 81.00B
+DisplayBandwidth { bandwidth: 243.0, unit_family: BinBytes }: 243.00B
+DisplayBandwidth { bandwidth: 729.0, unit_family: BinBytes }: 729.00B
+DisplayBandwidth { bandwidth: 2187.0, unit_family: BinBytes }: 2.14KiB
+DisplayBandwidth { bandwidth: 6561.0, unit_family: BinBytes }: 6.41KiB
+DisplayBandwidth { bandwidth: 19683.0, unit_family: BinBytes }: 19.22KiB
+DisplayBandwidth { bandwidth: 59049.0, unit_family: BinBytes }: 57.67KiB
+DisplayBandwidth { bandwidth: 177147.0, unit_family: BinBytes }: 173.00KiB
+DisplayBandwidth { bandwidth: 531441.0, unit_family: BinBytes }: 518.99KiB
+DisplayBandwidth { bandwidth: 1594323.0, unit_family: BinBytes }: 1.52MiB
+DisplayBandwidth { bandwidth: 4782969.0, unit_family: BinBytes }: 4.56MiB
+DisplayBandwidth { bandwidth: 14348907.0, unit_family: BinBytes }: 13.68MiB
+DisplayBandwidth { bandwidth: 43046721.0, unit_family: BinBytes }: 41.05MiB
+DisplayBandwidth { bandwidth: 129140163.0, unit_family: BinBytes }: 123.16MiB
+DisplayBandwidth { bandwidth: 387420489.0, unit_family: BinBytes }: 369.47MiB
+DisplayBandwidth { bandwidth: 1162261467.0, unit_family: BinBytes }: 1.08GiB
+DisplayBandwidth { bandwidth: 3486784401.0, unit_family: BinBytes }: 3.25GiB
+DisplayBandwidth { bandwidth: 10460353203.0, unit_family: BinBytes }: 9.74GiB
+DisplayBandwidth { bandwidth: 31381059609.0, unit_family: BinBytes }: 29.23GiB
+DisplayBandwidth { bandwidth: 94143178827.0, unit_family: BinBytes }: 87.68GiB
+DisplayBandwidth { bandwidth: 282429536481.0, unit_family: BinBytes }: 263.03GiB
+DisplayBandwidth { bandwidth: 847288609443.0, unit_family: BinBytes }: 789.10GiB
+DisplayBandwidth { bandwidth: 2541865828329.0, unit_family: BinBytes }: 2.31TiB
+DisplayBandwidth { bandwidth: 7625597484987.0, unit_family: BinBytes }: 6.94TiB
+DisplayBandwidth { bandwidth: 22876792454961.0, unit_family: BinBytes }: 20.81TiB
+DisplayBandwidth { bandwidth: 68630377364883.0, unit_family: BinBytes }: 62.42TiB
+DisplayBandwidth { bandwidth: 205891132094649.0, unit_family: BinBytes }: 187.26TiB
+DisplayBandwidth { bandwidth: 617673396283947.0, unit_family: BinBytes }: 561.77TiB
+DisplayBandwidth { bandwidth: 1853020188851841.0, unit_family: BinBytes }: 1.65PiB
+DisplayBandwidth { bandwidth: 5559060566555523.0, unit_family: BinBytes }: 4.94PiB
+DisplayBandwidth { bandwidth: 1.6677181699666568e16, unit_family: BinBytes }: 14.81PiB
+DisplayBandwidth { bandwidth: 5.0031545098999704e16, unit_family: BinBytes }: 44.44PiB
+DisplayBandwidth { bandwidth: 1.5009463529699914e17, unit_family: BinBytes }: 133.31PiB
+DisplayBandwidth { bandwidth: 4.502839058909974e17, unit_family: BinBytes }: 399.93PiB
+DisplayBandwidth { bandwidth: 0.008, unit_family: BinBytes }: 0.01B
+DisplayBandwidth { bandwidth: 0.04, unit_family: BinBytes }: 0.04B
+DisplayBandwidth { bandwidth: 0.2, unit_family: BinBytes }: 0.20B
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBytes }: 1.00B
+DisplayBandwidth { bandwidth: 5.0, unit_family: BinBytes }: 5.00B
+DisplayBandwidth { bandwidth: 25.0, unit_family: BinBytes }: 25.00B
+DisplayBandwidth { bandwidth: 125.0, unit_family: BinBytes }: 125.00B
+DisplayBandwidth { bandwidth: 625.0, unit_family: BinBytes }: 625.00B
+DisplayBandwidth { bandwidth: 3125.0, unit_family: BinBytes }: 3.05KiB
+DisplayBandwidth { bandwidth: 15625.0, unit_family: BinBytes }: 15.26KiB
+DisplayBandwidth { bandwidth: 78125.0, unit_family: BinBytes }: 76.29KiB
+DisplayBandwidth { bandwidth: 390625.0, unit_family: BinBytes }: 381.47KiB
+DisplayBandwidth { bandwidth: 1953125.0, unit_family: BinBytes }: 1.86MiB
+DisplayBandwidth { bandwidth: 9765625.0, unit_family: BinBytes }: 9.31MiB
+DisplayBandwidth { bandwidth: 48828125.0, unit_family: BinBytes }: 46.57MiB
+DisplayBandwidth { bandwidth: 244140625.0, unit_family: BinBytes }: 232.83MiB
+DisplayBandwidth { bandwidth: 1220703125.0, unit_family: BinBytes }: 1.14GiB
+DisplayBandwidth { bandwidth: 6103515625.0, unit_family: BinBytes }: 5.68GiB
+DisplayBandwidth { bandwidth: 30517578125.0, unit_family: BinBytes }: 28.42GiB
+DisplayBandwidth { bandwidth: 152587890625.0, unit_family: BinBytes }: 142.11GiB
+DisplayBandwidth { bandwidth: 762939453125.0, unit_family: BinBytes }: 710.54GiB
+DisplayBandwidth { bandwidth: 3814697265625.0, unit_family: BinBytes }: 3.47TiB
+DisplayBandwidth { bandwidth: 19073486328125.0, unit_family: BinBytes }: 17.35TiB
+DisplayBandwidth { bandwidth: 95367431640625.0, unit_family: BinBytes }: 86.74TiB
+DisplayBandwidth { bandwidth: 476837158203125.0, unit_family: BinBytes }: 433.68TiB
+DisplayBandwidth { bandwidth: 2384185791015625.0, unit_family: BinBytes }: 2.12PiB
+DisplayBandwidth { bandwidth: 1.1920928955078124e16, unit_family: BinBytes }: 10.59PiB
+DisplayBandwidth { bandwidth: 5.960464477539062e16, unit_family: BinBytes }: 52.94PiB
+DisplayBandwidth { bandwidth: 2.9802322387695315e17, unit_family: BinBytes }: 264.70PiB
+DisplayBandwidth { bandwidth: 0.015625, unit_family: BinBits }: 0.12b
+DisplayBandwidth { bandwidth: 0.03125, unit_family: BinBits }: 0.25b
+DisplayBandwidth { bandwidth: 0.0625, unit_family: BinBits }: 0.50b
+DisplayBandwidth { bandwidth: 0.125, unit_family: BinBits }: 1.00b
+DisplayBandwidth { bandwidth: 0.25, unit_family: BinBits }: 2.00b
+DisplayBandwidth { bandwidth: 0.5, unit_family: BinBits }: 4.00b
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBits }: 8.00b
+DisplayBandwidth { bandwidth: 2.0, unit_family: BinBits }: 16.00b
+DisplayBandwidth { bandwidth: 4.0, unit_family: BinBits }: 32.00b
+DisplayBandwidth { bandwidth: 8.0, unit_family: BinBits }: 64.00b
+DisplayBandwidth { bandwidth: 16.0, unit_family: BinBits }: 128.00b
+DisplayBandwidth { bandwidth: 32.0, unit_family: BinBits }: 256.00b
+DisplayBandwidth { bandwidth: 64.0, unit_family: BinBits }: 512.00b
+DisplayBandwidth { bandwidth: 128.0, unit_family: BinBits }: 1.00Kib
+DisplayBandwidth { bandwidth: 256.0, unit_family: BinBits }: 2.00Kib
+DisplayBandwidth { bandwidth: 512.0, unit_family: BinBits }: 4.00Kib
+DisplayBandwidth { bandwidth: 1024.0, unit_family: BinBits }: 8.00Kib
+DisplayBandwidth { bandwidth: 2048.0, unit_family: BinBits }: 16.00Kib
+DisplayBandwidth { bandwidth: 4096.0, unit_family: BinBits }: 32.00Kib
+DisplayBandwidth { bandwidth: 8192.0, unit_family: BinBits }: 64.00Kib
+DisplayBandwidth { bandwidth: 16384.0, unit_family: BinBits }: 128.00Kib
+DisplayBandwidth { bandwidth: 32768.0, unit_family: BinBits }: 256.00Kib
+DisplayBandwidth { bandwidth: 65536.0, unit_family: BinBits }: 512.00Kib
+DisplayBandwidth { bandwidth: 131072.0, unit_family: BinBits }: 1.00Mib
+DisplayBandwidth { bandwidth: 262144.0, unit_family: BinBits }: 2.00Mib
+DisplayBandwidth { bandwidth: 524288.0, unit_family: BinBits }: 4.00Mib
+DisplayBandwidth { bandwidth: 1048576.0, unit_family: BinBits }: 8.00Mib
+DisplayBandwidth { bandwidth: 2097152.0, unit_family: BinBits }: 16.00Mib
+DisplayBandwidth { bandwidth: 4194304.0, unit_family: BinBits }: 32.00Mib
+DisplayBandwidth { bandwidth: 8388608.0, unit_family: BinBits }: 64.00Mib
+DisplayBandwidth { bandwidth: 16777216.0, unit_family: BinBits }: 128.00Mib
+DisplayBandwidth { bandwidth: 33554432.0, unit_family: BinBits }: 256.00Mib
+DisplayBandwidth { bandwidth: 67108864.0, unit_family: BinBits }: 512.00Mib
+DisplayBandwidth { bandwidth: 134217728.0, unit_family: BinBits }: 1.00Gib
+DisplayBandwidth { bandwidth: 268435456.0, unit_family: BinBits }: 2.00Gib
+DisplayBandwidth { bandwidth: 536870912.0, unit_family: BinBits }: 4.00Gib
+DisplayBandwidth { bandwidth: 1073741824.0, unit_family: BinBits }: 8.00Gib
+DisplayBandwidth { bandwidth: 2147483648.0, unit_family: BinBits }: 16.00Gib
+DisplayBandwidth { bandwidth: 4294967296.0, unit_family: BinBits }: 32.00Gib
+DisplayBandwidth { bandwidth: 8589934592.0, unit_family: BinBits }: 64.00Gib
+DisplayBandwidth { bandwidth: 17179869184.0, unit_family: BinBits }: 128.00Gib
+DisplayBandwidth { bandwidth: 34359738368.0, unit_family: BinBits }: 256.00Gib
+DisplayBandwidth { bandwidth: 68719476736.0, unit_family: BinBits }: 512.00Gib
+DisplayBandwidth { bandwidth: 137438953472.0, unit_family: BinBits }: 1.00Tib
+DisplayBandwidth { bandwidth: 274877906944.0, unit_family: BinBits }: 2.00Tib
+DisplayBandwidth { bandwidth: 549755813888.0, unit_family: BinBits }: 4.00Tib
+DisplayBandwidth { bandwidth: 1099511627776.0, unit_family: BinBits }: 8.00Tib
+DisplayBandwidth { bandwidth: 2199023255552.0, unit_family: BinBits }: 16.00Tib
+DisplayBandwidth { bandwidth: 4398046511104.0, unit_family: BinBits }: 32.00Tib
+DisplayBandwidth { bandwidth: 8796093022208.0, unit_family: BinBits }: 64.00Tib
+DisplayBandwidth { bandwidth: 17592186044416.0, unit_family: BinBits }: 128.00Tib
+DisplayBandwidth { bandwidth: 35184372088832.0, unit_family: BinBits }: 256.00Tib
+DisplayBandwidth { bandwidth: 70368744177664.0, unit_family: BinBits }: 512.00Tib
+DisplayBandwidth { bandwidth: 140737488355328.0, unit_family: BinBits }: 1.00Pib
+DisplayBandwidth { bandwidth: 281474976710656.0, unit_family: BinBits }: 2.00Pib
+DisplayBandwidth { bandwidth: 562949953421312.0, unit_family: BinBits }: 4.00Pib
+DisplayBandwidth { bandwidth: 1125899906842624.0, unit_family: BinBits }: 8.00Pib
+DisplayBandwidth { bandwidth: 2251799813685248.0, unit_family: BinBits }: 16.00Pib
+DisplayBandwidth { bandwidth: 4503599627370496.0, unit_family: BinBits }: 32.00Pib
+DisplayBandwidth { bandwidth: 9007199254740992.0, unit_family: BinBits }: 64.00Pib
+DisplayBandwidth { bandwidth: 1.8014398509481984e16, unit_family: BinBits }: 128.00Pib
+DisplayBandwidth { bandwidth: 3.602879701896397e16, unit_family: BinBits }: 256.00Pib
+DisplayBandwidth { bandwidth: 7.205759403792794e16, unit_family: BinBits }: 512.00Pib
+DisplayBandwidth { bandwidth: 1.4411518807585587e17, unit_family: BinBits }: 1024.00Pib
+DisplayBandwidth { bandwidth: 2.8823037615171174e17, unit_family: BinBits }: 2048.00Pib
+DisplayBandwidth { bandwidth: 5.764607523034235e17, unit_family: BinBits }: 4096.00Pib
+DisplayBandwidth { bandwidth: 0.01024, unit_family: BinBits }: 0.08b
+DisplayBandwidth { bandwidth: 0.0256, unit_family: BinBits }: 0.20b
+DisplayBandwidth { bandwidth: 0.064, unit_family: BinBits }: 0.51b
+DisplayBandwidth { bandwidth: 0.16, unit_family: BinBits }: 1.28b
+DisplayBandwidth { bandwidth: 0.4, unit_family: BinBits }: 3.20b
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBits }: 8.00b
+DisplayBandwidth { bandwidth: 2.5, unit_family: BinBits }: 20.00b
+DisplayBandwidth { bandwidth: 6.25, unit_family: BinBits }: 50.00b
+DisplayBandwidth { bandwidth: 15.625, unit_family: BinBits }: 125.00b
+DisplayBandwidth { bandwidth: 39.0625, unit_family: BinBits }: 312.50b
+DisplayBandwidth { bandwidth: 97.65625, unit_family: BinBits }: 781.25b
+DisplayBandwidth { bandwidth: 244.140625, unit_family: BinBits }: 1.91Kib
+DisplayBandwidth { bandwidth: 610.3515625, unit_family: BinBits }: 4.77Kib
+DisplayBandwidth { bandwidth: 1525.87890625, unit_family: BinBits }: 11.92Kib
+DisplayBandwidth { bandwidth: 3814.697265625, unit_family: BinBits }: 29.80Kib
+DisplayBandwidth { bandwidth: 9536.7431640625, unit_family: BinBits }: 74.51Kib
+DisplayBandwidth { bandwidth: 23841.85791015625, unit_family: BinBits }: 186.26Kib
+DisplayBandwidth { bandwidth: 59604.644775390625, unit_family: BinBits }: 465.66Kib
+DisplayBandwidth { bandwidth: 149011.61193847656, unit_family: BinBits }: 1.14Mib
+DisplayBandwidth { bandwidth: 372529.0298461914, unit_family: BinBits }: 2.84Mib
+DisplayBandwidth { bandwidth: 931322.5746154785, unit_family: BinBits }: 7.11Mib
+DisplayBandwidth { bandwidth: 2328306.4365386963, unit_family: BinBits }: 17.76Mib
+DisplayBandwidth { bandwidth: 5820766.091346741, unit_family: BinBits }: 44.41Mib
+DisplayBandwidth { bandwidth: 14551915.228366852, unit_family: BinBits }: 111.02Mib
+DisplayBandwidth { bandwidth: 36379788.07091713, unit_family: BinBits }: 277.56Mib
+DisplayBandwidth { bandwidth: 90949470.17729282, unit_family: BinBits }: 693.89Mib
+DisplayBandwidth { bandwidth: 227373675.44323206, unit_family: BinBits }: 1.69Gib
+DisplayBandwidth { bandwidth: 568434188.6080801, unit_family: BinBits }: 4.24Gib
+DisplayBandwidth { bandwidth: 1421085471.5202003, unit_family: BinBits }: 10.59Gib
+DisplayBandwidth { bandwidth: 3552713678.800501, unit_family: BinBits }: 26.47Gib
+DisplayBandwidth { bandwidth: 8881784197.001253, unit_family: BinBits }: 66.17Gib
+DisplayBandwidth { bandwidth: 22204460492.50313, unit_family: BinBits }: 165.44Gib
+DisplayBandwidth { bandwidth: 55511151231.25783, unit_family: BinBits }: 413.59Gib
+DisplayBandwidth { bandwidth: 138777878078.14456, unit_family: BinBits }: 1.01Tib
+DisplayBandwidth { bandwidth: 346944695195.3614, unit_family: BinBits }: 2.52Tib
+DisplayBandwidth { bandwidth: 867361737988.4036, unit_family: BinBits }: 6.31Tib
+DisplayBandwidth { bandwidth: 2168404344971.0088, unit_family: BinBits }: 15.78Tib
+DisplayBandwidth { bandwidth: 5421010862427.522, unit_family: BinBits }: 39.44Tib
+DisplayBandwidth { bandwidth: 13552527156068.807, unit_family: BinBits }: 98.61Tib
+DisplayBandwidth { bandwidth: 33881317890172.016, unit_family: BinBits }: 246.52Tib
+DisplayBandwidth { bandwidth: 84703294725430.03, unit_family: BinBits }: 616.30Tib
+DisplayBandwidth { bandwidth: 211758236813575.1, unit_family: BinBits }: 1.50Pib
+DisplayBandwidth { bandwidth: 529395592033937.75, unit_family: BinBits }: 3.76Pib
+DisplayBandwidth { bandwidth: 1323488980084844.3, unit_family: BinBits }: 9.40Pib
+DisplayBandwidth { bandwidth: 3308722450212111.0, unit_family: BinBits }: 23.51Pib
+DisplayBandwidth { bandwidth: 8271806125530277.0, unit_family: BinBits }: 58.77Pib
+DisplayBandwidth { bandwidth: 2.0679515313825692e16, unit_family: BinBits }: 146.94Pib
+DisplayBandwidth { bandwidth: 5.169878828456423e16, unit_family: BinBits }: 367.34Pib
+DisplayBandwidth { bandwidth: 1.2924697071141058e17, unit_family: BinBits }: 918.35Pib
+DisplayBandwidth { bandwidth: 3.2311742677852646e17, unit_family: BinBits }: 2295.89Pib
+DisplayBandwidth { bandwidth: 0.012345679012345678, unit_family: BinBits }: 0.10b
+DisplayBandwidth { bandwidth: 0.037037037037037035, unit_family: BinBits }: 0.30b
+DisplayBandwidth { bandwidth: 0.1111111111111111, unit_family: BinBits }: 0.89b
+DisplayBandwidth { bandwidth: 0.3333333333333333, unit_family: BinBits }: 2.67b
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBits }: 8.00b
+DisplayBandwidth { bandwidth: 3.0, unit_family: BinBits }: 24.00b
+DisplayBandwidth { bandwidth: 9.0, unit_family: BinBits }: 72.00b
+DisplayBandwidth { bandwidth: 27.0, unit_family: BinBits }: 216.00b
+DisplayBandwidth { bandwidth: 81.0, unit_family: BinBits }: 648.00b
+DisplayBandwidth { bandwidth: 243.0, unit_family: BinBits }: 1.90Kib
+DisplayBandwidth { bandwidth: 729.0, unit_family: BinBits }: 5.70Kib
+DisplayBandwidth { bandwidth: 2187.0, unit_family: BinBits }: 17.09Kib
+DisplayBandwidth { bandwidth: 6561.0, unit_family: BinBits }: 51.26Kib
+DisplayBandwidth { bandwidth: 19683.0, unit_family: BinBits }: 153.77Kib
+DisplayBandwidth { bandwidth: 59049.0, unit_family: BinBits }: 461.32Kib
+DisplayBandwidth { bandwidth: 177147.0, unit_family: BinBits }: 1.35Mib
+DisplayBandwidth { bandwidth: 531441.0, unit_family: BinBits }: 4.05Mib
+DisplayBandwidth { bandwidth: 1594323.0, unit_family: BinBits }: 12.16Mib
+DisplayBandwidth { bandwidth: 4782969.0, unit_family: BinBits }: 36.49Mib
+DisplayBandwidth { bandwidth: 14348907.0, unit_family: BinBits }: 109.47Mib
+DisplayBandwidth { bandwidth: 43046721.0, unit_family: BinBits }: 328.42Mib
+DisplayBandwidth { bandwidth: 129140163.0, unit_family: BinBits }: 0.96Gib
+DisplayBandwidth { bandwidth: 387420489.0, unit_family: BinBits }: 2.89Gib
+DisplayBandwidth { bandwidth: 1162261467.0, unit_family: BinBits }: 8.66Gib
+DisplayBandwidth { bandwidth: 3486784401.0, unit_family: BinBits }: 25.98Gib
+DisplayBandwidth { bandwidth: 10460353203.0, unit_family: BinBits }: 77.94Gib
+DisplayBandwidth { bandwidth: 31381059609.0, unit_family: BinBits }: 233.81Gib
+DisplayBandwidth { bandwidth: 94143178827.0, unit_family: BinBits }: 701.42Gib
+DisplayBandwidth { bandwidth: 282429536481.0, unit_family: BinBits }: 2.05Tib
+DisplayBandwidth { bandwidth: 847288609443.0, unit_family: BinBits }: 6.16Tib
+DisplayBandwidth { bandwidth: 2541865828329.0, unit_family: BinBits }: 18.49Tib
+DisplayBandwidth { bandwidth: 7625597484987.0, unit_family: BinBits }: 55.48Tib
+DisplayBandwidth { bandwidth: 22876792454961.0, unit_family: BinBits }: 166.45Tib
+DisplayBandwidth { bandwidth: 68630377364883.0, unit_family: BinBits }: 499.35Tib
+DisplayBandwidth { bandwidth: 205891132094649.0, unit_family: BinBits }: 1.46Pib
+DisplayBandwidth { bandwidth: 617673396283947.0, unit_family: BinBits }: 4.39Pib
+DisplayBandwidth { bandwidth: 1853020188851841.0, unit_family: BinBits }: 13.17Pib
+DisplayBandwidth { bandwidth: 5559060566555523.0, unit_family: BinBits }: 39.50Pib
+DisplayBandwidth { bandwidth: 1.6677181699666568e16, unit_family: BinBits }: 118.50Pib
+DisplayBandwidth { bandwidth: 5.0031545098999704e16, unit_family: BinBits }: 355.50Pib
+DisplayBandwidth { bandwidth: 1.5009463529699914e17, unit_family: BinBits }: 1066.49Pib
+DisplayBandwidth { bandwidth: 4.502839058909974e17, unit_family: BinBits }: 3199.46Pib
+DisplayBandwidth { bandwidth: 0.008, unit_family: BinBits }: 0.06b
+DisplayBandwidth { bandwidth: 0.04, unit_family: BinBits }: 0.32b
+DisplayBandwidth { bandwidth: 0.2, unit_family: BinBits }: 1.60b
+DisplayBandwidth { bandwidth: 1.0, unit_family: BinBits }: 8.00b
+DisplayBandwidth { bandwidth: 5.0, unit_family: BinBits }: 40.00b
+DisplayBandwidth { bandwidth: 25.0, unit_family: BinBits }: 200.00b
+DisplayBandwidth { bandwidth: 125.0, unit_family: BinBits }: 0.98Kib
+DisplayBandwidth { bandwidth: 625.0, unit_family: BinBits }: 4.88Kib
+DisplayBandwidth { bandwidth: 3125.0, unit_family: BinBits }: 24.41Kib
+DisplayBandwidth { bandwidth: 15625.0, unit_family: BinBits }: 122.07Kib
+DisplayBandwidth { bandwidth: 78125.0, unit_family: BinBits }: 610.35Kib
+DisplayBandwidth { bandwidth: 390625.0, unit_family: BinBits }: 2.98Mib
+DisplayBandwidth { bandwidth: 1953125.0, unit_family: BinBits }: 14.90Mib
+DisplayBandwidth { bandwidth: 9765625.0, unit_family: BinBits }: 74.51Mib
+DisplayBandwidth { bandwidth: 48828125.0, unit_family: BinBits }: 372.53Mib
+DisplayBandwidth { bandwidth: 244140625.0, unit_family: BinBits }: 1.82Gib
+DisplayBandwidth { bandwidth: 1220703125.0, unit_family: BinBits }: 9.09Gib
+DisplayBandwidth { bandwidth: 6103515625.0, unit_family: BinBits }: 45.47Gib
+DisplayBandwidth { bandwidth: 30517578125.0, unit_family: BinBits }: 227.37Gib
+DisplayBandwidth { bandwidth: 152587890625.0, unit_family: BinBits }: 1.11Tib
+DisplayBandwidth { bandwidth: 762939453125.0, unit_family: BinBits }: 5.55Tib
+DisplayBandwidth { bandwidth: 3814697265625.0, unit_family: BinBits }: 27.76Tib
+DisplayBandwidth { bandwidth: 19073486328125.0, unit_family: BinBits }: 138.78Tib
+DisplayBandwidth { bandwidth: 95367431640625.0, unit_family: BinBits }: 693.89Tib
+DisplayBandwidth { bandwidth: 476837158203125.0, unit_family: BinBits }: 3.39Pib
+DisplayBandwidth { bandwidth: 2384185791015625.0, unit_family: BinBits }: 16.94Pib
+DisplayBandwidth { bandwidth: 1.1920928955078124e16, unit_family: BinBits }: 84.70Pib
+DisplayBandwidth { bandwidth: 5.960464477539062e16, unit_family: BinBits }: 423.52Pib
+DisplayBandwidth { bandwidth: 2.9802322387695315e17, unit_family: BinBits }: 2117.58Pib
+DisplayBandwidth { bandwidth: 0.015625, unit_family: SiBytes }: 0.02B
+DisplayBandwidth { bandwidth: 0.03125, unit_family: SiBytes }: 0.03B
+DisplayBandwidth { bandwidth: 0.0625, unit_family: SiBytes }: 0.06B
+DisplayBandwidth { bandwidth: 0.125, unit_family: SiBytes }: 0.12B
+DisplayBandwidth { bandwidth: 0.25, unit_family: SiBytes }: 0.25B
+DisplayBandwidth { bandwidth: 0.5, unit_family: SiBytes }: 0.50B
+DisplayBandwidth { bandwidth: 1.0, unit_family: SiBytes }: 1.00B
+DisplayBandwidth { bandwidth: 2.0, unit_family: SiBytes }: 2.00B
+DisplayBandwidth { bandwidth: 4.0, unit_family: SiBytes }: 4.00B
+DisplayBandwidth { bandwidth: 8.0, unit_family: SiBytes }: 8.00B
+DisplayBandwidth { bandwidth: 16.0, unit_family: SiBytes }: 16.00B
+DisplayBandwidth { bandwidth: 32.0, unit_family: SiBytes }: 32.00B
+DisplayBandwidth { bandwidth: 64.0, unit_family: SiBytes }: 64.00B
+DisplayBandwidth { bandwidth: 128.0, unit_family: SiBytes }: 128.00B
+DisplayBandwidth { bandwidth: 256.0, unit_family: SiBytes }: 256.00B
+DisplayBandwidth { bandwidth: 512.0, unit_family: SiBytes }: 512.00B
+DisplayBandwidth { bandwidth: 1024.0, unit_family: SiBytes }: 1.02kB
+DisplayBandwidth { bandwidth: 2048.0, unit_family: SiBytes }: 2.05kB
+DisplayBandwidth { bandwidth: 4096.0, unit_family: SiBytes }: 4.10kB
+DisplayBandwidth { bandwidth: 8192.0, unit_family: SiBytes }: 8.19kB
+DisplayBandwidth { bandwidth: 16384.0, unit_family: SiBytes }: 16.38kB
+DisplayBandwidth { bandwidth: 32768.0, unit_family: SiBytes }: 32.77kB
+DisplayBandwidth { bandwidth: 65536.0, unit_family: SiBytes }: 65.54kB
+DisplayBandwidth { bandwidth: 131072.0, unit_family: SiBytes }: 131.07kB
+DisplayBandwidth { bandwidth: 262144.0, unit_family: SiBytes }: 262.14kB
+DisplayBandwidth { bandwidth: 524288.0, unit_family: SiBytes }: 524.29kB
+DisplayBandwidth { bandwidth: 1048576.0, unit_family: SiBytes }: 1.05MB
+DisplayBandwidth { bandwidth: 2097152.0, unit_family: SiBytes }: 2.10MB
+DisplayBandwidth { bandwidth: 4194304.0, unit_family: SiBytes }: 4.19MB
+DisplayBandwidth { bandwidth: 8388608.0, unit_family: SiBytes }: 8.39MB
+DisplayBandwidth { bandwidth: 16777216.0, unit_family: SiBytes }: 16.78MB
+DisplayBandwidth { bandwidth: 33554432.0, unit_family: SiBytes }: 33.55MB
+DisplayBandwidth { bandwidth: 67108864.0, unit_family: SiBytes }: 67.11MB
+DisplayBandwidth { bandwidth: 134217728.0, unit_family: SiBytes }: 134.22MB
+DisplayBandwidth { bandwidth: 268435456.0, unit_family: SiBytes }: 268.44MB
+DisplayBandwidth { bandwidth: 536870912.0, unit_family: SiBytes }: 536.87MB
+DisplayBandwidth { bandwidth: 1073741824.0, unit_family: SiBytes }: 1.07GB
+DisplayBandwidth { bandwidth: 2147483648.0, unit_family: SiBytes }: 2.15GB
+DisplayBandwidth { bandwidth: 4294967296.0, unit_family: SiBytes }: 4.29GB
+DisplayBandwidth { bandwidth: 8589934592.0, unit_family: SiBytes }: 8.59GB
+DisplayBandwidth { bandwidth: 17179869184.0, unit_family: SiBytes }: 17.18GB
+DisplayBandwidth { bandwidth: 34359738368.0, unit_family: SiBytes }: 34.36GB
+DisplayBandwidth { bandwidth: 68719476736.0, unit_family: SiBytes }: 68.72GB
+DisplayBandwidth { bandwidth: 137438953472.0, unit_family: SiBytes }: 137.44GB
+DisplayBandwidth { bandwidth: 274877906944.0, unit_family: SiBytes }: 274.88GB
+DisplayBandwidth { bandwidth: 549755813888.0, unit_family: SiBytes }: 549.76GB
+DisplayBandwidth { bandwidth: 1099511627776.0, unit_family: SiBytes }: 1.10TB
+DisplayBandwidth { bandwidth: 2199023255552.0, unit_family: SiBytes }: 2.20TB
+DisplayBandwidth { bandwidth: 4398046511104.0, unit_family: SiBy