pub struct StandaloneReport {Show 21 fields
pub wakeup_pcts_us: [u32; 5],
pub wakeup_counts: [u64; 5],
pub wakeup_min_us: u32,
pub wakeup_max_us: u32,
pub nr_wakeup_samples: u64,
pub request_pcts_us: [u32; 5],
pub request_counts: [u64; 5],
pub request_min_us: u32,
pub request_max_us: u32,
pub nr_request_samples: u64,
pub rps_pcts: [u32; 5],
pub rps_counts: [u64; 5],
pub rps_min: u32,
pub rps_max: u32,
pub nr_rps_samples: u64,
pub final_rps_goal: usize,
pub achieved_rps: f64,
pub sched_delay_msg_ns: u64,
pub sched_delay_worker_ns: u64,
pub loop_count: u64,
pub nr_workers: usize,
}Expand description
Whole-run result of a standalone (no-VM) schbench engine run, projected for
the side-by-side comparison against the reference schbench. The percentile
arrays index in SCHBENCH_PERCENTILES order (20.0, 50.0, 90.0, 99.0,
99.9), in microseconds. The sample counts are carried so a zero-sample run is
visible rather than silently reported as an all-zero distribution.
Fields§
§wakeup_pcts_us: [u32; 5]Wakeup-latency percentiles (µs), in SCHBENCH_PERCENTILES order.
wakeup_counts: [u64; 5]Differenced per-bucket sample count at each percentile (schbench’s
per-row (N samples)), in SCHBENCH_PERCENTILES order.
wakeup_min_us: u32Minimum observed wakeup latency (µs).
wakeup_max_us: u32Maximum observed wakeup latency (µs).
nr_wakeup_samples: u64Number of wakeup-latency samples folded into the percentiles.
request_pcts_us: [u32; 5]Request-latency percentiles (µs), in SCHBENCH_PERCENTILES order.
request_counts: [u64; 5]Differenced per-bucket sample count at each percentile (schbench’s
per-row (N samples)), in SCHBENCH_PERCENTILES order.
request_min_us: u32Minimum observed request latency (µs).
request_max_us: u32Maximum observed request latency (µs).
nr_request_samples: u64Number of request-latency samples folded into the percentiles.
rps_pcts: [u32; 5]Per-second achieved-RPS percentiles (requests/sec), in
SCHBENCH_PERCENTILES order — schbench’s rps_stats table sampled once
per second by the control thread (schbench.c:1777). Unitless rate, not
µs, so no _us suffix.
rps_counts: [u64; 5]Differenced per-bucket sample count at each RPS percentile, in
SCHBENCH_PERCENTILES order.
rps_min: u32Minimum observed per-second RPS sample.
rps_max: u32Maximum observed per-second RPS sample.
nr_rps_samples: u64Number of per-second RPS samples folded into the percentiles.
final_rps_goal: usizeAuto-RPS final TOTAL target rate at run exit (per-thread live rate *
message_threads), schbench’s final rps goal (schbench.c:1995). Equal to
the seeded total for fixed -R/default mode; diverges only under auto-RPS.
achieved_rps: f64Completed work cycles per second over the TRUE elapsed run window
(loop_count / elapsed). NOT schbench’s average rps summary line, which
divides by the integer -r runtime — schbench_validate prints that
(loop_count / runtime_secs) separately; this field is the measured
elapsed-window rate.
sched_delay_msg_ns: u64Mean message-thread run-queue wait (ns), schedstat mean-of-means.
sched_delay_worker_ns: u64Mean worker-thread run-queue wait (ns), schedstat mean-of-means.
loop_count: u64Total work-loop iterations across all worker threads.
nr_workers: usizeResolved total worker count (message_threads * worker_threads). Divisor
for the PER-WORKER pipe-mode avg worker transfer rate — see
pipe_transfer_report.
Trait Implementations§
Source§impl Clone for StandaloneReport
impl Clone for StandaloneReport
Source§fn clone(&self) -> StandaloneReport
fn clone(&self) -> StandaloneReport
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StandaloneReport
impl Debug for StandaloneReport
impl Copy for StandaloneReport
Auto Trait Implementations§
impl Freeze for StandaloneReport
impl RefUnwindSafe for StandaloneReport
impl Send for StandaloneReport
impl Sync for StandaloneReport
impl Unpin for StandaloneReport
impl UnwindSafe for StandaloneReport
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more