pub struct BenchmarkDef {Show 20 fields
pub id: &'static str,
pub name: &'static str,
pub group: &'static str,
pub severity: Severity,
pub threshold: f64,
pub budget_ns: Option<u64>,
pub tags: &'static [&'static str],
pub runner_fn: fn(&mut Bencher),
pub file: &'static str,
pub line: u32,
pub module_path: &'static str,
pub warmup_ns: Option<u64>,
pub measurement_ns: Option<u64>,
pub samples: Option<u64>,
pub sample_count: Option<u64>,
pub iters_per_sample: Option<u64>,
pub min_iterations: Option<u64>,
pub max_iterations: Option<u64>,
pub throughput: Option<Throughput>,
pub depends_on: &'static [&'static str],
}Expand description
Benchmark definition registered via #[flux::bench]
Fields§
§id: &'static strUnique identifier
name: &'static strHuman-readable name
group: &'static strGroup this benchmark belongs to
severity: SeveritySeverity level for CI reporting
threshold: f64Per-benchmark regression threshold percentage (0.0 = use global threshold)
budget_ns: Option<u64>Time budget for the mean per-iteration time, in nanoseconds. A mean above it fails the benchmark.
Tags for filtering
runner_fn: fn(&mut Bencher)Function pointer to the wrapper
file: &'static strSource file path
line: u32Source line number
module_path: &'static strModule path
warmup_ns: Option<u64>Per-benchmark warmup override (nanoseconds)
measurement_ns: Option<u64>Per-benchmark measurement override (nanoseconds)
samples: Option<u64>Per-benchmark fixed mode: N samples of one iteration each, no warmup
sample_count: Option<u64>Per-benchmark target sample count. It overrides only the count.
iters_per_sample: Option<u64>Per-benchmark fixed iterations per sample. Some selects fixed mode.
min_iterations: Option<u64>Per-benchmark minimum total measurement iterations
max_iterations: Option<u64>Per-benchmark maximum total measurement iterations
throughput: Option<Throughput>Per-benchmark work per call for throughput rates.
Bencher::throughput in the body overrides it.
depends_on: &'static [&'static str]Benchmark IDs that must run before this one
Trait Implementations§
Source§impl Clone for BenchmarkDef
impl Clone for BenchmarkDef
impl Collect for BenchmarkDef
Auto Trait Implementations§
impl Freeze for BenchmarkDef
impl RefUnwindSafe for BenchmarkDef
impl Send for BenchmarkDef
impl Sync for BenchmarkDef
impl Unpin for BenchmarkDef
impl UnsafeUnpin for BenchmarkDef
impl UnwindSafe for BenchmarkDef
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.