Skip to content

Commit fc37028

Browse files
committed
Simplify generator code
1 parent 6d5422a commit fc37028

File tree

1 file changed

+37
-52
lines changed

1 file changed

+37
-52
lines changed

arrow/benches/zip_kernels.rs

Lines changed: 37 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -133,34 +133,6 @@ where
133133
}
134134
}
135135

136-
struct GenerateStringView<T: ByteViewType> {
137-
str_len: usize,
138-
description: String,
139-
_marker: std::marker::PhantomData<T>,
140-
}
141-
142-
impl InputGenerator for GenerateStringView<StringViewType> {
143-
fn name(&self) -> &str {
144-
self.description.as_str()
145-
}
146-
fn generate_scalar_with_null_value(&self) -> ArrayRef {
147-
new_null_array(&DataType::Utf8View, 1)
148-
}
149-
150-
fn generate_non_null_scalars(&self, seed: u64, number_of_scalars: usize) -> Vec<ArrayRef> {
151-
let array = self.generate_array(seed, number_of_scalars, 0.0);
152-
(0..number_of_scalars).map(|i| array.slice(i, 1)).collect()
153-
}
154-
155-
fn generate_array(&self, _seed: u64, array_length: usize, null_percentage: f32) -> ArrayRef {
156-
Arc::new(create_string_view_array_with_fixed_len(
157-
array_length,
158-
null_percentage,
159-
self.str_len,
160-
))
161-
}
162-
}
163-
164136
fn mask_cases(len: usize) -> Vec<(&'static str, BooleanArray)> {
165137
vec![
166138
("all_true", create_boolean_array(len, 0.0, 1.0)),
@@ -251,17 +223,14 @@ fn bench_zip_input_on_all_masks(
251223
}
252224
}
253225

254-
fn bench_zip_on_input_generator_for_scalars(
255-
c: &mut Criterion,
256-
input_generator: &impl InputGenerator,
257-
) {
258-
bench_zip_on_input_generators_for_scalars(c, input_generator, input_generator);
226+
fn bench_zip_on_string_view_scalar(c: &mut Criterion, input_generator: &GenerateStringView) {
227+
bench_zip_on_string_view_scalars(c, input_generator, input_generator);
259228
}
260229

261-
fn bench_zip_on_input_generators_for_scalars(
230+
fn bench_zip_on_string_view_scalars(
262231
c: &mut Criterion,
263-
input_generator_1: &impl InputGenerator,
264-
input_generator_2: &impl InputGenerator,
232+
input_generator_1: &GenerateStringView,
233+
input_generator_2: &GenerateStringView,
265234
) {
266235
let mut group = c.benchmark_group(
267236
format!(
@@ -272,17 +241,10 @@ fn bench_zip_on_input_generators_for_scalars(
272241
.as_str(),
273242
);
274243

275-
let null_scalar = input_generator_1.generate_scalar_with_null_value();
276-
277-
let [non_null_scalar_1]: [_; 1] = input_generator_1
278-
.generate_non_null_scalars(42, 1)
279-
.try_into()
280-
.unwrap();
244+
let null_scalar = input_generator_1.generate_null();
281245

282-
let [non_null_scalar_2]: [_; 1] = input_generator_2
283-
.generate_non_null_scalars(18, 1)
284-
.try_into()
285-
.unwrap();
246+
let non_null_scalar_1 = input_generator_1.generate();
247+
let non_null_scalar_2 = input_generator_2.generate();
286248

287249
let masks = mask_cases(ARRAY_LEN);
288250

@@ -306,6 +268,29 @@ fn bench_zip_on_input_generators_for_scalars(
306268
group.finish();
307269
}
308270

271+
struct GenerateStringView {
272+
str_len: usize,
273+
description: String,
274+
_marker: std::marker::PhantomData<StringViewType>,
275+
}
276+
277+
impl GenerateStringView {
278+
fn name(&self) -> &str {
279+
self.description.as_str()
280+
}
281+
fn generate_null(&self) -> ArrayRef {
282+
new_null_array(&DataType::Utf8View, 1)
283+
}
284+
285+
fn generate(&self) -> ArrayRef {
286+
Arc::new(create_string_view_array_with_fixed_len(
287+
1,
288+
0.0,
289+
self.str_len,
290+
))
291+
}
292+
}
293+
309294
fn add_benchmark(c: &mut Criterion) {
310295
// Primitive
311296
bench_zip_on_input_generator(
@@ -356,7 +341,7 @@ fn add_benchmark(c: &mut Criterion) {
356341
},
357342
);
358343

359-
bench_zip_on_input_generator_for_scalars(
344+
bench_zip_on_string_view_scalar(
360345
c,
361346
&GenerateStringView {
362347
description: "string_views size 3".to_string(),
@@ -365,7 +350,7 @@ fn add_benchmark(c: &mut Criterion) {
365350
},
366351
);
367352

368-
bench_zip_on_input_generator_for_scalars(
353+
bench_zip_on_string_view_scalar(
369354
c,
370355
&GenerateStringView {
371356
description: "string_views size 10".to_string(),
@@ -374,7 +359,7 @@ fn add_benchmark(c: &mut Criterion) {
374359
},
375360
);
376361

377-
bench_zip_on_input_generator_for_scalars(
362+
bench_zip_on_string_view_scalar(
378363
c,
379364
&GenerateStringView {
380365
description: "string_views size 100".to_string(),
@@ -383,7 +368,7 @@ fn add_benchmark(c: &mut Criterion) {
383368
},
384369
);
385370

386-
bench_zip_on_input_generators_for_scalars(
371+
bench_zip_on_string_view_scalars(
387372
c,
388373
&GenerateStringView {
389374
description: "string_views size 3".to_string(),
@@ -397,7 +382,7 @@ fn add_benchmark(c: &mut Criterion) {
397382
},
398383
);
399384

400-
bench_zip_on_input_generators_for_scalars(
385+
bench_zip_on_string_view_scalars(
401386
c,
402387
&GenerateStringView {
403388
description: "string_views size 3".to_string(),
@@ -411,7 +396,7 @@ fn add_benchmark(c: &mut Criterion) {
411396
},
412397
);
413398

414-
bench_zip_on_input_generators_for_scalars(
399+
bench_zip_on_string_view_scalars(
415400
c,
416401
&GenerateStringView {
417402
description: "string_views size 10".to_string(),

0 commit comments

Comments
 (0)