From e3555ed95c9ad812a21ec4cdcebdac9679f10b06 Mon Sep 17 00:00:00 2001 From: Weijun-H Date: Fri, 2 Jan 2026 15:56:47 +0200 Subject: [PATCH 1/2] chore: increase row count and batch size for more deterministic tests --- arrow-json/benches/serde.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/arrow-json/benches/serde.rs b/arrow-json/benches/serde.rs index 23f005cc90ab..1279118f5f7d 100644 --- a/arrow-json/benches/serde.rs +++ b/arrow-json/benches/serde.rs @@ -22,12 +22,15 @@ use rand::{Rng, rng}; use serde::Serialize; use std::sync::Arc; +const ROWS: usize = 1 << 18; + #[allow(deprecated)] fn do_bench(c: &mut Criterion, name: &str, rows: &[R], schema: &Schema) { let schema = Arc::new(schema.clone()); + let batch_size = rows.len(); c.bench_function(name, |b| { b.iter(|| { - let builder = ReaderBuilder::new(schema.clone()).with_batch_size(64); + let builder = ReaderBuilder::new(schema.clone()).with_batch_size(batch_size); let mut decoder = builder.build_decoder().unwrap(); decoder.serialize(rows) }) @@ -37,26 +40,26 @@ fn do_bench(c: &mut Criterion, name: &str, rows: &[R], schema: &Sc fn criterion_benchmark(c: &mut Criterion) { let mut rng = rng(); let schema = Schema::new(vec![Field::new("i32", DataType::Int32, false)]); - let v: Vec = (0..2048).map(|_| rng.random_range(0..10000)).collect(); + let v: Vec = (0..ROWS).map(|_| rng.random_range(0..10000)).collect(); do_bench(c, "small_i32", &v, &schema); - let v: Vec = (0..2048).map(|_| rng.random()).collect(); + let v: Vec = (0..ROWS).map(|_| rng.random()).collect(); do_bench(c, "large_i32", &v, &schema); let schema = Schema::new(vec![Field::new("i64", DataType::Int64, false)]); - let v: Vec = (0..2048).map(|_| rng.random_range(0..10000)).collect(); + let v: Vec = (0..ROWS).map(|_| rng.random_range(0..10000)).collect(); do_bench(c, "small_i64", &v, &schema); - let v: Vec = (0..2048) + let v: Vec = (0..ROWS) .map(|_| rng.random_range(0..i32::MAX as _)) .collect(); do_bench(c, "medium_i64", &v, &schema); - let v: Vec = (0..2048).map(|_| rng.random()).collect(); + let v: Vec = (0..ROWS).map(|_| rng.random()).collect(); do_bench(c, "large_i64", &v, &schema); let schema = Schema::new(vec![Field::new("f32", DataType::Float32, false)]); - let v: Vec = (0..2048).map(|_| rng.random_range(0.0..10000.)).collect(); + let v: Vec = (0..ROWS).map(|_| rng.random_range(0.0..10000.)).collect(); do_bench(c, "small_f32", &v, &schema); - let v: Vec = (0..2048).map(|_| rng.random_range(0.0..f32::MAX)).collect(); + let v: Vec = (0..ROWS).map(|_| rng.random_range(0.0..f32::MAX)).collect(); do_bench(c, "large_f32", &v, &schema); } From e25eb42efb0d7f68f8420507323a71005013db38 Mon Sep 17 00:00:00 2001 From: Weijun-H Date: Wed, 7 Jan 2026 00:15:34 +0200 Subject: [PATCH 2/2] chore --- arrow-json/benches/serde.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/arrow-json/benches/serde.rs b/arrow-json/benches/serde.rs index 1279118f5f7d..282f2e7c76d0 100644 --- a/arrow-json/benches/serde.rs +++ b/arrow-json/benches/serde.rs @@ -27,10 +27,9 @@ const ROWS: usize = 1 << 18; #[allow(deprecated)] fn do_bench(c: &mut Criterion, name: &str, rows: &[R], schema: &Schema) { let schema = Arc::new(schema.clone()); - let batch_size = rows.len(); c.bench_function(name, |b| { b.iter(|| { - let builder = ReaderBuilder::new(schema.clone()).with_batch_size(batch_size); + let builder = ReaderBuilder::new(schema.clone()).with_batch_size(8192); let mut decoder = builder.build_decoder().unwrap(); decoder.serialize(rows) })