diff --git a/benches/workloads.rs b/benches/workloads.rs index faae7da..77c0598 100644 --- a/benches/workloads.rs +++ b/benches/workloads.rs @@ -46,8 +46,6 @@ const CAPACITY: usize = 4096; const UNIVERSE: u64 = 16_384; const OPS: usize = 200_000; const SEED: u64 = 42; -/// Read-through probability used by the operation model (1.0 = always read-through). -const READ_THROUGH_RATIO: f64 = 1.0; fn make_generator(workload: Workload) -> WorkloadGenerator { WorkloadSpec { @@ -99,7 +97,13 @@ fn bench_hit_rates(c: &mut Criterion) { &mut generator, OPS, &mut op_model, - |k| Arc::clone(&value_pool[k as usize]), + |k| { + Arc::clone( + value_pool + .get(k as usize) + .expect("generator produced key outside configured UNIVERSE"), + ) + }, ); total += start.elapsed(); } @@ -214,7 +218,16 @@ fn bench_comprehensive(c: &mut Criterion) { policy_id, &mut cache, cfg, - |key| Arc::clone(&value_pool[key as usize]), + |key| { + let idx = key as usize; + Arc::clone(value_pool.get(idx).unwrap_or_else(|| { + panic!( + "workload key {} out of range for value_pool (len {}, expected < UNIVERSE)", + key, + value_pool.len() + ) + })) + }, ); total += start.elapsed(); }