Skip to content

Commit 9522a70

Browse files
robert3005claude
andcommitted
Shrink list_contains membership benchmarks
Reduce needle rows, chunks, and set sizes so that every benchmark stays under 1ms of CodSpeed simulation once constant sets are prepared as probes. Nested sets compare whole rows and get their own smaller sizes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Robert Kruszewski <github@robertk.io>
1 parent bfbbc78 commit 9522a70

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

‎vortex-array/benches/list_contains_set.rs‎

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,11 @@ fn main() {
3636
}
3737

3838
// Sized to keep CodSpeed simulation under 1ms per benchmark.
39-
const ROWS: usize = 4_096;
40-
const CHUNKS: usize = 16;
41-
const SET_LENS: &[usize] = &[4, 64, 1_024];
39+
const ROWS: usize = 1_024;
40+
const CHUNKS: usize = 4;
41+
const SET_LENS: &[usize] = &[4, 64, 256];
42+
/// A nested set compares whole rows to sort its elements and to probe them, so it stays smaller.
43+
const NESTED_SET_LENS: &[usize] = &[4, 16, 32];
4244

4345
/// A random set of `len` values, and needles of which about half are members.
4446
fn random_i64(len: usize) -> (Vec<i64>, Vec<i64>) {
@@ -168,7 +170,7 @@ fn utf8_random_chunked(bencher: Bencher, set_len: usize) {
168170
bench_in_set(bencher, utf8_set(&set), utf8_needles(&needles, CHUNKS));
169171
}
170172

171-
#[divan::bench(args = [4_096, 16_384])]
173+
#[divan::bench(args = [1_024, 2_048])]
172174
fn i64_random_large(bencher: Bencher, set_len: usize) {
173175
let (set, needles) = random_i64(set_len);
174176
bench_in_set(bencher, i64_set(&set), i64_needles(&needles, 1));
@@ -199,7 +201,7 @@ fn bench_decimal(bencher: Bencher, set: Vec<i64>, needles: Vec<i64>) {
199201
bench_in_set(bencher, set, needles);
200202
}
201203

202-
#[divan::bench(args = SET_LENS)]
204+
#[divan::bench(args = NESTED_SET_LENS)]
203205
fn nested_list_random(bencher: Bencher, set_len: usize) {
204206
let (set, needles) = random_i64(set_len);
205207
let element_dtype = Arc::new(DType::Primitive(PType::I64, Nullability::NonNullable));

0 commit comments

Comments
 (0)