@@ -66,33 +66,21 @@ pub fn decompress_bitpacking_late_filter<T: NativePType>(bencher: Bencher, fract
6666 . bench_values ( |mask| filter ( array. to_canonical ( ) . as_ref ( ) , & mask) . unwrap ( ) ) ;
6767}
6868
69- // TODO(ngates): bring back benchmarks once operator API is stable.
70- // #[divan::bench(types = [i8, i16, i32, i64], args = TRUE_COUNT)]
71- // pub fn decompress_bitpacking_pipeline_filter<T: Element + NativePType>(
72- // bencher: Bencher,
73- // fraction_kept: f64,
74- // ) {
75- // let mut rng = StdRng::seed_from_u64(0);
76- // let values = (0..LENGTH)
77- // .map(|_| T::from(rng.random_range(0..100)).unwrap())
78- // .collect::<BufferMut<T>>()
79- // .into_array()
80- // .to_primitive();
81- // let array = bitpack_to_best_bit_width(&values).unwrap();
82- //
83- // let mask = (0..LENGTH)
84- // .map(|_| rng.random_bool(fraction_kept))
85- // .collect::<BooleanBuffer>();
86- //
87- // bencher
88- // .with_inputs(|| Mask::from_buffer(mask.clone()))
89- // .bench_local_values(|mask| {
90- // export_canonical_pipeline_expr(
91- // array.dtype(),
92- // array.len(),
93- // array.to_operator().unwrap().unwrap().as_ref(),
94- // &mask,
95- // )
96- // .unwrap()
97- // });
98- // }
69+ #[ divan:: bench( types = [ i8 , i16 , i32 , i64 ] , args = TRUE_COUNT ) ]
70+ pub fn decompress_bitpacking_pipeline_filter < T : NativePType > ( bencher : Bencher , fraction_kept : f64 ) {
71+ let mut rng = StdRng :: seed_from_u64 ( 0 ) ;
72+ let values = ( 0 ..LENGTH )
73+ . map ( |_| T :: from ( rng. random_range ( 0 ..100 ) ) . unwrap ( ) )
74+ . collect :: < BufferMut < T > > ( )
75+ . into_array ( )
76+ . to_primitive ( ) ;
77+ let array = bitpack_to_best_bit_width ( & values) . unwrap ( ) ;
78+
79+ let mask = ( 0 ..LENGTH )
80+ . map ( |_| rng. random_bool ( fraction_kept) )
81+ . collect :: < BitBuffer > ( ) ;
82+
83+ bencher
84+ . with_inputs ( || Mask :: from ( mask. clone ( ) ) )
85+ . bench_local_values ( |mask| array. execute_with_selection ( & mask) . unwrap ( ) ) ;
86+ }
0 commit comments