@@ -22,12 +22,15 @@ use rand::{Rng, rng};
2222use serde:: Serialize ;
2323use std:: sync:: Arc ;
2424
25+ const ROWS : usize = 1 << 18 ;
26+
2527#[ allow( deprecated) ]
2628fn do_bench < R : Serialize > ( c : & mut Criterion , name : & str , rows : & [ R ] , schema : & Schema ) {
2729 let schema = Arc :: new ( schema. clone ( ) ) ;
30+ let batch_size = rows. len ( ) ;
2831 c. bench_function ( name, |b| {
2932 b. iter ( || {
30- let builder = ReaderBuilder :: new ( schema. clone ( ) ) . with_batch_size ( 64 ) ;
33+ let builder = ReaderBuilder :: new ( schema. clone ( ) ) . with_batch_size ( batch_size ) ;
3134 let mut decoder = builder. build_decoder ( ) . unwrap ( ) ;
3235 decoder. serialize ( rows)
3336 } )
@@ -37,26 +40,26 @@ fn do_bench<R: Serialize>(c: &mut Criterion, name: &str, rows: &[R], schema: &Sc
3740fn criterion_benchmark ( c : & mut Criterion ) {
3841 let mut rng = rng ( ) ;
3942 let schema = Schema :: new ( vec ! [ Field :: new( "i32" , DataType :: Int32 , false ) ] ) ;
40- let v: Vec < i32 > = ( 0 ..2048 ) . map ( |_| rng. random_range ( 0 ..10000 ) ) . collect ( ) ;
43+ let v: Vec < i32 > = ( 0 ..ROWS ) . map ( |_| rng. random_range ( 0 ..10000 ) ) . collect ( ) ;
4144
4245 do_bench ( c, "small_i32" , & v, & schema) ;
43- let v: Vec < i32 > = ( 0 ..2048 ) . map ( |_| rng. random ( ) ) . collect ( ) ;
46+ let v: Vec < i32 > = ( 0 ..ROWS ) . map ( |_| rng. random ( ) ) . collect ( ) ;
4447 do_bench ( c, "large_i32" , & v, & schema) ;
4548
4649 let schema = Schema :: new ( vec ! [ Field :: new( "i64" , DataType :: Int64 , false ) ] ) ;
47- let v: Vec < i64 > = ( 0 ..2048 ) . map ( |_| rng. random_range ( 0 ..10000 ) ) . collect ( ) ;
50+ let v: Vec < i64 > = ( 0 ..ROWS ) . map ( |_| rng. random_range ( 0 ..10000 ) ) . collect ( ) ;
4851 do_bench ( c, "small_i64" , & v, & schema) ;
49- let v: Vec < i64 > = ( 0 ..2048 )
52+ let v: Vec < i64 > = ( 0 ..ROWS )
5053 . map ( |_| rng. random_range ( 0 ..i32:: MAX as _ ) )
5154 . collect ( ) ;
5255 do_bench ( c, "medium_i64" , & v, & schema) ;
53- let v: Vec < i64 > = ( 0 ..2048 ) . map ( |_| rng. random ( ) ) . collect ( ) ;
56+ let v: Vec < i64 > = ( 0 ..ROWS ) . map ( |_| rng. random ( ) ) . collect ( ) ;
5457 do_bench ( c, "large_i64" , & v, & schema) ;
5558
5659 let schema = Schema :: new ( vec ! [ Field :: new( "f32" , DataType :: Float32 , false ) ] ) ;
57- let v: Vec < f32 > = ( 0 ..2048 ) . map ( |_| rng. random_range ( 0.0 ..10000. ) ) . collect ( ) ;
60+ let v: Vec < f32 > = ( 0 ..ROWS ) . map ( |_| rng. random_range ( 0.0 ..10000. ) ) . collect ( ) ;
5861 do_bench ( c, "small_f32" , & v, & schema) ;
59- let v: Vec < f32 > = ( 0 ..2048 ) . map ( |_| rng. random_range ( 0.0 ..f32:: MAX ) ) . collect ( ) ;
62+ let v: Vec < f32 > = ( 0 ..ROWS ) . map ( |_| rng. random_range ( 0.0 ..f32:: MAX ) ) . collect ( ) ;
6063 do_bench ( c, "large_f32" , & v, & schema) ;
6164}
6265
0 commit comments