Skip to content

Commit 78db26b

Browse files
committed
fix: make micro-benchmark labels stable
Parametrizing on fn pointers can lead to different addresses across runs. This is problematic for identifying benchmarks in Codspeed across runs. Signed-off-by: Alexander Droste <[email protected]>
1 parent c631d4c commit 78db26b

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

vortex/benches/common_encoding_tree_throughput.rs

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -330,21 +330,33 @@ fn setup_datetime_for_bp() -> ArrayRef {
330330
}
331331

332332
// Complex encoding tree benchmarks
333+
fn setup_fn(name: &str) -> fn() -> ArrayRef {
334+
match name {
335+
"for_bp_u64" => setup_for_bp_u64,
336+
"alp_for_bp_f64" => setup_alp_for_bp_f64,
337+
"dict_varbinview_string" => setup_dict_varbinview_string,
338+
"runend_for_bp_u32" => setup_runend_for_bp_u32,
339+
"dict_fsst_varbin_string" => setup_dict_fsst_varbin_string,
340+
"dict_fsst_varbin_bp_string" => setup_dict_fsst_varbin_bp_string,
341+
"datetime_for_bp" => setup_datetime_for_bp,
342+
_ => panic!("Unknown setup function: {}", name),
343+
}
344+
}
333345

334346
/// Benchmark decompression of various encoding trees
335347
#[divan::bench(
336348
args = [
337-
("for_bp_u64", setup_for_bp_u64 as fn() -> ArrayRef),
338-
("alp_for_bp_f64", setup_alp_for_bp_f64 as fn() -> ArrayRef),
339-
("dict_varbinview_string", setup_dict_varbinview_string as fn() -> ArrayRef),
340-
("runend_for_bp_u32", setup_runend_for_bp_u32 as fn() -> ArrayRef),
341-
("dict_fsst_varbin_string", setup_dict_fsst_varbin_string as fn() -> ArrayRef),
342-
("dict_fsst_varbin_bp_string", setup_dict_fsst_varbin_bp_string as fn() -> ArrayRef),
343-
("datetime_for_bp", setup_datetime_for_bp as fn() -> ArrayRef),
349+
"for_bp_u64",
350+
"alp_for_bp_f64",
351+
"dict_varbinview_string",
352+
"runend_for_bp_u32",
353+
"dict_fsst_varbin_string",
354+
"dict_fsst_varbin_bp_string",
355+
"datetime_for_bp",
344356
]
345357
)]
346-
fn decompress(bencher: Bencher, (name, setup_fn): (&str, fn() -> ArrayRef)) {
347-
let _ = name; // Used by divan for display
358+
fn decompress(bencher: Bencher, name: &str) {
359+
let setup_fn = setup_fn(name);
348360
let compressed = setup_fn();
349361
let nbytes = compressed.nbytes();
350362

0 commit comments

Comments
 (0)