@@ -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-
164136fn 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+
309294fn 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