Skip to content

Commit 96524f6

Browse files
committed
more
Signed-off-by: Alexander Droste <[email protected]>
1 parent 18242bf commit 96524f6

File tree

11 files changed

+73
-81
lines changed

11 files changed

+73
-81
lines changed

encodings/alp/benches/alp_compress.rs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,11 @@ fn compress_alp<T: ALPFloat + NativePType>(bencher: Bencher, args: (usize, f64,
6464
Validity::NonNullable
6565
};
6666
let values = values.freeze();
67+
let array = PrimitiveArray::new(values, validity);
6768

6869
bencher
69-
.with_inputs(|| (values.clone(), validity.clone()))
70-
.bench_values(|(values, validity)| {
71-
alp_encode(&PrimitiveArray::new(values, validity), None).unwrap()
72-
})
70+
.with_inputs(|| &array)
71+
.bench_values(|array| alp_encode(array, None).unwrap())
7372
}
7473

7574
#[divan::bench(types = [f32, f64], args = BENCH_ARGS)]
@@ -90,15 +89,15 @@ fn decompress_alp<T: ALPFloat + NativePType>(bencher: Bencher, args: (usize, f64
9089
Validity::NonNullable
9190
};
9291
let values = values.freeze();
92+
let encoded = alp_encode(
93+
&PrimitiveArray::new(Buffer::copy_from(&values), validity),
94+
None,
95+
)
96+
.unwrap();
97+
9398
bencher
94-
.with_inputs(|| {
95-
alp_encode(
96-
&PrimitiveArray::new(Buffer::copy_from(&values), validity.clone()),
97-
None,
98-
)
99-
.unwrap()
100-
})
101-
.bench_values(decompress);
99+
.with_inputs(|| encoded.clone())
100+
.bench_values(decompress)
102101
}
103102

104103
#[divan::bench(types = [f32, f64], args = [10_000, 100_000])]
@@ -107,8 +106,8 @@ fn compress_rd<T: ALPRDFloat>(bencher: Bencher, n: usize) {
107106
let encoder = RDEncoder::new(&[T::from(1.23).unwrap()]);
108107

109108
bencher
110-
.with_inputs(|| &primitive)
111-
.bench_refs(|primitive| encoder.encode(primitive))
109+
.with_inputs(|| (&primitive, &encoder))
110+
.bench_refs(|(primitive, encoder)| encoder.encode(primitive))
112111
}
113112

114113
#[divan::bench(types = [f32, f64], args = [10_000, 100_000])]

encodings/fastlanes/benches/compute_between.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ mod primitive {
9393
let mut rng = StdRng::seed_from_u64(0);
9494
let arr = generate_primitive_array::<T>(&mut rng, len);
9595

96-
bencher.with_inputs(|| arr.clone()).bench_refs(|arr| {
96+
bencher.with_inputs(|| &arr).bench_refs(|arr| {
9797
boolean(
9898
&compare(
9999
arr.as_ref(),
@@ -127,7 +127,7 @@ mod primitive {
127127
let mut rng = StdRng::seed_from_u64(0);
128128
let arr = generate_primitive_array::<T>(&mut rng, len);
129129

130-
bencher.with_inputs(|| arr.clone()).bench_refs(|arr| {
130+
bencher.with_inputs(|| &arr).bench_refs(|arr| {
131131
between(
132132
arr.as_ref(),
133133
ConstantArray::new(min, arr.len()).as_ref(),
@@ -175,7 +175,7 @@ mod bitpack {
175175
let mut rng = StdRng::seed_from_u64(0);
176176
let arr = generate_bit_pack_primitive_array::<T>(&mut rng, len);
177177

178-
bencher.with_inputs(|| arr.clone()).bench_refs(|arr| {
178+
bencher.with_inputs(|| &arr).bench_refs(|arr| {
179179
boolean(
180180
&compare(
181181
arr.as_ref(),
@@ -208,7 +208,7 @@ mod bitpack {
208208
let mut rng = StdRng::seed_from_u64(0);
209209
let arr = generate_bit_pack_primitive_array::<T>(&mut rng, len);
210210

211-
bencher.with_inputs(|| arr.clone()).bench_refs(|arr| {
211+
bencher.with_inputs(|| &arr).bench_refs(|arr| {
212212
between(
213213
arr.as_ref(),
214214
ConstantArray::new(min, arr.len()).as_ref(),

encodings/fastlanes/benches/pipeline_rle.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ fn compress(bencher: Bencher, (length, run_step): (usize, usize)) {
4848
);
4949

5050
bencher
51-
.with_inputs(|| values.clone())
51+
.with_inputs(|| &values)
5252
.bench_refs(|values| RLEArray::encode(values).unwrap());
5353
}
5454

encodings/fastlanes/benches/pipeline_v2_bitpacking_basic.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,10 @@ fn bitpack_pipeline_unpack(bencher: Bencher, (num_elements, validity_pct): (usiz
4444

4545
// Encode with 10-bit width (supports values up to 1023).
4646
let bitpacked = BitPackedArray::encode(&primitive, 10).unwrap();
47+
let array = bitpacked.to_array();
4748

4849
bencher
49-
.with_inputs(|| bitpacked.to_array())
50+
.with_inputs(|| &array)
5051
.bench_refs(|array| array.execute().unwrap());
5152
}
5253

encodings/fsst/benches/fsst_compress.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ const BENCH_ARGS: &[(usize, usize, u8)] = &[
4747
fn compress_fsst(bencher: Bencher, (string_count, avg_len, unique_chars): (usize, usize, u8)) {
4848
let array = generate_test_data(string_count, avg_len, unique_chars);
4949
let compressor = fsst_train_compressor(&array);
50-
bencher.bench(|| fsst_compress(&array, &compressor))
50+
bencher
51+
.with_inputs(|| (&array, &compressor))
52+
.bench_refs(|(array, compressor)| fsst_compress(*array, compressor))
5153
}
5254

5355
#[divan::bench(args = BENCH_ARGS)]
@@ -64,7 +66,9 @@ fn decompress_fsst(bencher: Bencher, (string_count, avg_len, unique_chars): (usi
6466
#[divan::bench(args = BENCH_ARGS)]
6567
fn train_compressor(bencher: Bencher, (string_count, avg_len, unique_chars): (usize, usize, u8)) {
6668
let array = generate_test_data(string_count, avg_len, unique_chars);
67-
bencher.bench(|| fsst_train_compressor(&array))
69+
bencher
70+
.with_inputs(|| &array)
71+
.bench_refs(|array| fsst_train_compressor(array))
6872
}
6973

7074
#[divan::bench(args = BENCH_ARGS)]

vortex-array/benches/dict_mask.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ fn bench_dict_mask(bencher: Bencher, (fraction_valid, fraction_masked): (f64, f6
5959
let values = PrimitiveArray::from_option_iter([None, Some(42i32)]).into_array();
6060
let array = DictArray::try_new(codes, values).unwrap().into_array();
6161
let filter_mask = filter_mask(len, fraction_masked, &mut rng);
62-
6362
bencher
6463
.with_inputs(|| (&array, &filter_mask))
6564
.bench_refs(|(array, filter_mask)| mask(array.as_ref(), filter_mask).unwrap());

vortex-array/benches/expr/large_struct_pack.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,7 @@ fn pack_return_dtype(bencher: Bencher, num_fields: usize) {
3838
let pack_expr = pack(children, Nullability::Nullable);
3939

4040
// return_dtype should be fast, it is assumed cheap in some expression simplifiers
41-
bencher.bench(|| pack_expr.return_dtype(&dtype).unwrap());
41+
bencher
42+
.with_inputs(|| (&pack_expr, &dtype))
43+
.bench_refs(|(pack_expr, dtype)| pack_expr.return_dtype(dtype).unwrap());
4244
}

vortex-array/benches/varbinview_compact.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,24 +42,22 @@ fn compact_impl(bencher: Bencher, (output_size, utilization_pct): (usize, usize)
4242
let base_size = (output_size * 100) / utilization_pct;
4343
let base_array = build_varbinview_fixture(base_size);
4444
let indices = random_indices(output_size, base_size);
45+
let taken = take(base_array.as_ref(), &indices).vortex_unwrap();
46+
let array = taken.to_varbinview();
4547

4648
bencher
47-
.with_inputs(|| {
48-
let taken = take(base_array.as_ref(), &indices).vortex_unwrap();
49-
taken.to_varbinview()
50-
})
49+
.with_inputs(|| &array)
5150
.bench_refs(|array| array.compact_buffers().vortex_unwrap())
5251
}
5352

5453
fn compact_sliced_impl(bencher: Bencher, (output_size, utilization_pct): (usize, usize)) {
5554
let base_size = (output_size * 100) / utilization_pct;
5655
let base_array = build_varbinview_fixture(base_size);
56+
let sliced = base_array.as_ref().slice(0..output_size);
57+
let array = sliced.to_varbinview();
5758

5859
bencher
59-
.with_inputs(|| {
60-
let sliced = base_array.as_ref().slice(0..output_size);
61-
sliced.to_varbinview()
62-
})
60+
.with_inputs(|| &array)
6361
.bench_refs(|array| array.compact_buffers().vortex_unwrap())
6462
}
6563

vortex-buffer/benches/vortex_bitbuffer.rs

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ fn append_buffer_arrow_buffer(bencher: Bencher, length: usize) {
117117
#[divan::bench(args = INPUT_SIZE)]
118118
fn value_vortex_buffer(bencher: Bencher, length: usize) {
119119
let buffer = BitBuffer::from_iter((0..length).map(|i| i % 2 == 0));
120-
bencher.bench_local(|| {
120+
bencher.with_inputs(|| &buffer).bench_refs(|buffer| {
121121
for idx in 0..length {
122122
divan::black_box(buffer.value(idx));
123123
}
@@ -127,7 +127,7 @@ fn value_vortex_buffer(bencher: Bencher, length: usize) {
127127
#[divan::bench(args = INPUT_SIZE)]
128128
fn value_arrow_buffer(bencher: Bencher, length: usize) {
129129
let buffer = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0)));
130-
bencher.bench_local(|| {
130+
bencher.with_inputs(|| &buffer).bench_refs(|buffer| {
131131
for idx in 0..length {
132132
divan::black_box(buffer.0.value(idx));
133133
}
@@ -136,36 +136,36 @@ fn value_arrow_buffer(bencher: Bencher, length: usize) {
136136

137137
#[divan::bench(args = INPUT_SIZE)]
138138
fn slice_vortex_buffer(bencher: Bencher, length: usize) {
139+
let buffer = BitBuffer::from_iter((0..length).map(|i| i % 2 == 0));
139140
bencher
140-
.with_inputs(|| BitBuffer::from_iter((0..length).map(|i| i % 2 == 0)))
141-
.bench_values(|buffer| {
142-
let mid = length / 2;
141+
.with_inputs(|| (&buffer, length / 2))
142+
.bench_refs(|(buffer, mid)| {
143+
let mid = *mid;
143144
divan::black_box(buffer.slice(mid / 2..mid + mid / 2));
144145
});
145146
}
146147

147148
#[divan::bench(args = INPUT_SIZE)]
148149
fn slice_arrow_buffer(bencher: Bencher, length: usize) {
149-
bencher
150-
.with_inputs(|| Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0))))
151-
.bench_values(|buffer| {
152-
let mid = length / 2;
153-
divan::black_box(buffer.0.slice(mid / 2, mid / 2));
154-
});
150+
let buffer = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0)));
151+
bencher.with_inputs(|| &buffer).bench_refs(|buffer| {
152+
let mid = length / 2;
153+
divan::black_box(buffer.0.slice(mid / 2, mid / 2));
154+
});
155155
}
156156

157157
#[divan::bench(args = INPUT_SIZE)]
158158
fn true_count_vortex_buffer(bencher: Bencher, length: usize) {
159159
let buffer = BitBuffer::from_iter((0..length).map(|i| i % 2 == 0));
160-
bencher.bench_local(|| {
160+
bencher.with_inputs(|| &buffer).bench_refs(|buffer| {
161161
divan::black_box(buffer.true_count());
162162
})
163163
}
164164

165165
#[divan::bench(args = INPUT_SIZE)]
166166
fn true_count_arrow_buffer(bencher: Bencher, length: usize) {
167167
let buffer = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0)));
168-
bencher.bench_local(|| {
168+
bencher.with_inputs(|| &buffer).bench_refs(|buffer| {
169169
divan::black_box(buffer.0.count_set_bits());
170170
});
171171
}
@@ -185,15 +185,11 @@ fn bitwise_and_vortex_buffer(bencher: Bencher, length: usize) {
185185

186186
#[divan::bench(args = INPUT_SIZE)]
187187
fn bitwise_and_arrow_buffer(bencher: Bencher, length: usize) {
188-
bencher
189-
.with_inputs(|| {
190-
let a = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0)));
191-
let b = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 3 == 0)));
192-
(a, b)
193-
})
194-
.bench_values(|(a, b)| {
195-
divan::black_box(&a.0 & &b.0);
196-
});
188+
let a = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0)));
189+
let b = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 3 == 0)));
190+
bencher.with_inputs(|| (&a, &b)).bench_refs(|(a, b)| {
191+
divan::black_box(&a.0 & &b.0);
192+
});
197193
}
198194

199195
#[divan::bench(args = INPUT_SIZE)]
@@ -211,15 +207,11 @@ fn bitwise_or_vortex_buffer(bencher: Bencher, length: usize) {
211207

212208
#[divan::bench(args = INPUT_SIZE)]
213209
fn bitwise_or_arrow_buffer(bencher: Bencher, length: usize) {
214-
bencher
215-
.with_inputs(|| {
216-
let a = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0)));
217-
let b = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 3 == 0)));
218-
(a, b)
219-
})
220-
.bench_values(|(a, b)| {
221-
divan::black_box(&a.0 | &b.0);
222-
});
210+
let a = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 2 == 0)));
211+
let b = Arrow(BooleanBuffer::from_iter((0..length).map(|i| i % 3 == 0)));
212+
bencher.with_inputs(|| (&a, &b)).bench_refs(|(a, b)| {
213+
divan::black_box(&a.0 | &b.0);
214+
});
223215
}
224216

225217
#[divan::bench(args = INPUT_SIZE)]

vortex-compute/benches/filter_buffer_mut.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,10 @@ impl From<u8> for LargeElement {
6464
#[divan::bench(types = [u8, u32, u64, LargeElement], args = SELECTIVITIES, sample_count = 1000)]
6565
fn filter_selectivity<T: Copy + Default + From<u8>>(bencher: Bencher, selectivity: f64) {
6666
let mask = generate_mask(BUFFER_SIZE, selectivity);
67+
6768
bencher
68-
.with_inputs(|| {
69-
let buffer = create_test_buffer::<T>(BUFFER_SIZE);
70-
(buffer, mask.clone())
71-
})
72-
.bench_values(|(mut buffer, mask)| {
69+
.with_inputs(|| create_test_buffer::<T>(BUFFER_SIZE))
70+
.bench_refs(|buffer| {
7371
buffer.filter(&mask);
74-
divan::black_box(buffer);
7572
});
7673
}

0 commit comments

Comments
 (0)