diff --git a/rust/arrow/benches/length_kernel.rs b/rust/arrow/benches/length_kernel.rs index cdc338acee4c0..b70f6374f8ffc 100644 --- a/rust/arrow/benches/length_kernel.rs +++ b/rust/arrow/benches/length_kernel.rs @@ -24,25 +24,23 @@ extern crate arrow; use arrow::array::*; use arrow::compute::kernels::length::length; -fn bench_length() { +fn bench_length(array: &StringArray) { + criterion::black_box(length(array).unwrap()); +} + +fn add_benchmark(c: &mut Criterion) { fn double_vec(v: Vec) -> Vec { [&v[..], &v[..]].concat() } // double ["hello", " ", "world", "!"] 10 times let mut values = vec!["one", "on", "o", ""]; - let mut expected = vec![3, 2, 1, 0]; for _ in 0..10 { values = double_vec(values); - expected = double_vec(expected); } let array = StringArray::from(values); - criterion::black_box(length(&array).unwrap()); -} - -fn add_benchmark(c: &mut Criterion) { - c.bench_function("length", |b| b.iter(bench_length)); + c.bench_function("length", |b| b.iter(|| bench_length(&array))); } criterion_group!(benches, add_benchmark);