pub enum Operation {
StoreNoEmbedding,
SearchFts,
RecallHot,
KgQueryDepth1,
KgQueryDepth3,
KgQueryDepth5,
KgTimeline,
}Expand description
Hot-path operations covered by this iteration of the bench tool.
Variants§
StoreNoEmbedding
memory_store without embedding — pure SQLite write path.
SearchFts
memory_search — FTS5 keyword baseline.
RecallHot
memory_recall hot path, depth=1 (no hierarchy expansion).
KgQueryDepth1
memory_kg_query recursive-CTE traversal at depth=1 (the
shallowest path through the depth ≤ 3 budget bucket).
KgQueryDepth3
memory_kg_query recursive-CTE traversal at depth=3 (the
deepest path inside the “depth ≤ 3” 100 ms budget bucket). Driven
against a chain fixture so the recursive CTE actually visits
three hops per query.
KgQueryDepth5
memory_kg_query recursive-CTE traversal at depth=5 (the tail
case for the “depth ≤ 5” 250 ms budget bucket). Driven against
the same chain fixture as depth=3.
KgTimeline
memory_kg_timeline — ordered timeline for a single source.
Implementations§
Source§impl Operation
impl Operation
pub fn label(self) -> &'static str
Sourcepub fn target_p95_ms(self) -> f64
pub fn target_p95_ms(self) -> f64
p95 budget in milliseconds, sourced from PERFORMANCE.md.
KgQueryDepth1 and KgQueryDepth3 both fall in the
“depth ≤ 3” (100 ms) bucket; KgQueryDepth5 is the tail case
at “depth ≤ 5” (250 ms). SearchFts and KgTimeline happen to
share the same numeric budget as the depth ≤ 3 bucket despite
belonging to different table rows in PERFORMANCE.md.
This is the canonical published budget; the runner-effective
pass/fail verdict uses [effective_target_p95_ms] which
applies the MACOS_BUDGET_MULT platform multiplier on top.
Sourcepub fn effective_target_p95_ms(self) -> f64
pub fn effective_target_p95_ms(self) -> f64
Runner-effective p95 budget — equal to [target_p95_ms] on
Linux/Windows, but multiplied by MACOS_BUDGET_MULT on
macOS targets per issue #1193. The pass/fail verdict in the
CLI bench tool uses this value; the JSON envelope’s
target_p95_ms field continues to report the canonical
PERFORMANCE.md number so regression dashboards stay stable.
Sourcepub fn target_p95_ms_at_scale(self, scale: Option<usize>) -> f64
pub fn target_p95_ms_at_scale(self, scale: Option<usize>) -> f64
#1579 B8 — canonical p95 budget at a given corpus scale.
None (the default workload) keeps the legacy
Self::target_p95_ms budgets byte-for-byte. Some(rows)
swaps in the SCALE_BUDGETS row for the three
corpus-sensitive operations; the KG operations keep their
canonical budgets because their fixtures are scale-independent
(see ScaleBudgets).
Sourcepub fn effective_target_p95_ms_at_scale(self, scale: Option<usize>) -> f64
pub fn effective_target_p95_ms_at_scale(self, scale: Option<usize>) -> f64
#1579 B8 — runner-effective sibling of
Self::target_p95_ms_at_scale (applies the #1193 macOS
multiplier, same as Self::effective_target_p95_ms).
Trait Implementations§
impl Copy for Operation
Source§impl<'de> Deserialize<'de> for Operation
impl<'de> Deserialize<'de> for Operation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Operation
impl StructuralPartialEq for Operation
Auto Trait Implementations§
impl Freeze for Operation
impl RefUnwindSafe for Operation
impl Send for Operation
impl Sync for Operation
impl Unpin for Operation
impl UnsafeUnpin for Operation
impl UnwindSafe for Operation
Blanket Implementations§
impl<T> Boilerplate for T
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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