This is an automated email from the ASF dual-hosted git repository. mbrobbel pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/main by this push: new 31ea84453b chore(deps): update criterion requirement from 0.5 to 0.6 (#7527) 31ea84453b is described below commit 31ea84453b2f7ed7aa4e85825bd6cbf7ecd45f3a Author: Matthijs Brobbel <m1brob...@gmail.com> AuthorDate: Tue May 20 09:56:06 2025 +0200 chore(deps): update criterion requirement from 0.5 to 0.6 (#7527) --- arrow-array/benches/decimal_overflow.rs | 9 ++++---- arrow-array/benches/fixed_size_list_array.rs | 4 ++-- arrow-array/benches/gc_view_types.rs | 5 +++-- arrow-array/benches/occupancy.rs | 4 ++-- arrow-array/benches/union_array.rs | 3 ++- arrow-buffer/benches/bit_mask.rs | 13 ++++++----- arrow-buffer/benches/i256.rs | 8 +++---- arrow-buffer/benches/offset.rs | 5 +++-- arrow-cast/benches/parse_date.rs | 3 ++- arrow-cast/benches/parse_decimal.rs | 3 ++- arrow-cast/benches/parse_time.rs | 3 ++- arrow-cast/benches/parse_timestamp.rs | 3 ++- arrow/Cargo.toml | 2 +- arrow/benches/arithmetic_kernels.rs | 27 ++++++++++++----------- arrow/benches/array_from_vec.rs | 12 +++++----- arrow/benches/bit_length_kernel.rs | 3 ++- arrow/benches/bitwise_kernel.rs | 31 +++++++++++++------------- arrow/benches/boolean_kernels.rs | 7 +++--- arrow/benches/buffer_bit_ops.rs | 13 ++++++----- arrow/benches/buffer_create.rs | 33 ++++++++++++++-------------- arrow/benches/builder.rs | 13 ++++++----- arrow/benches/cast_kernels.rs | 3 ++- arrow/benches/comparison_kernels.rs | 15 +++---------- arrow/benches/concatenate_kernel.rs | 5 +++-- arrow/benches/csv_writer.rs | 3 ++- arrow/benches/equal.rs | 3 ++- arrow/benches/filter_kernels.rs | 5 +++-- arrow/benches/interleave_kernels.rs | 3 ++- arrow/benches/json_reader.rs | 3 ++- arrow/benches/length_kernel.rs | 3 ++- arrow/benches/lexsort.rs | 6 ++--- arrow/benches/partition_kernels.rs | 4 ++-- arrow/benches/primitive_run_take.rs | 3 ++- arrow/benches/regexp_kernels.rs | 3 ++- arrow/benches/row_format.rs | 12 +++++----- arrow/benches/sort_kernel.rs | 17 +++++++------- arrow/benches/substring_kernels.rs | 5 +++-- arrow/benches/take_kernels.rs | 5 +++-- parquet/benches/compression.rs | 7 +++++- parquet/benches/row_selector.rs | 9 ++++---- 40 files changed, 171 insertions(+), 147 deletions(-) diff --git a/arrow-array/benches/decimal_overflow.rs b/arrow-array/benches/decimal_overflow.rs index 8f22b4b47c..f9438b76de 100644 --- a/arrow-array/benches/decimal_overflow.rs +++ b/arrow-array/benches/decimal_overflow.rs @@ -18,6 +18,7 @@ use arrow_array::builder::{Decimal128Builder, Decimal256Builder}; use arrow_buffer::i256; use criterion::*; +use std::hint; fn criterion_benchmark(c: &mut Criterion) { let len = 8192; @@ -36,16 +37,16 @@ fn criterion_benchmark(c: &mut Criterion) { let array_256 = builder_256.finish(); c.bench_function("validate_decimal_precision_128", |b| { - b.iter(|| black_box(array_128.validate_decimal_precision(8))); + b.iter(|| hint::black_box(array_128.validate_decimal_precision(8))); }); c.bench_function("null_if_overflow_precision_128", |b| { - b.iter(|| black_box(array_128.null_if_overflow_precision(8))); + b.iter(|| hint::black_box(array_128.null_if_overflow_precision(8))); }); c.bench_function("validate_decimal_precision_256", |b| { - b.iter(|| black_box(array_256.validate_decimal_precision(8))); + b.iter(|| hint::black_box(array_256.validate_decimal_precision(8))); }); c.bench_function("null_if_overflow_precision_256", |b| { - b.iter(|| black_box(array_256.null_if_overflow_precision(8))); + b.iter(|| hint::black_box(array_256.null_if_overflow_precision(8))); }); } diff --git a/arrow-array/benches/fixed_size_list_array.rs b/arrow-array/benches/fixed_size_list_array.rs index f9b862f880..2bdb0c252b 100644 --- a/arrow-array/benches/fixed_size_list_array.rs +++ b/arrow-array/benches/fixed_size_list_array.rs @@ -19,7 +19,7 @@ use arrow_array::{Array, FixedSizeListArray, Int32Array}; use arrow_schema::Field; use criterion::*; use rand::{rng, Rng}; -use std::sync::Arc; +use std::{hint, sync::Arc}; fn gen_fsl(len: usize, value_len: usize) -> FixedSizeListArray { let mut rng = rng(); @@ -39,7 +39,7 @@ fn criterion_benchmark(c: &mut Criterion) { |b| { b.iter(|| { for i in 0..len / value_len { - black_box(fsl.value(i)); + hint::black_box(fsl.value(i)); } }); }, diff --git a/arrow-array/benches/gc_view_types.rs b/arrow-array/benches/gc_view_types.rs index 4b74a8f60b..cab60b47af 100644 --- a/arrow-array/benches/gc_view_types.rs +++ b/arrow-array/benches/gc_view_types.rs @@ -17,6 +17,7 @@ use arrow_array::StringViewArray; use criterion::*; +use std::hint; fn gen_view_array(size: usize) -> StringViewArray { StringViewArray::from_iter((0..size).map(|v| match v % 3 { @@ -32,14 +33,14 @@ fn criterion_benchmark(c: &mut Criterion) { c.bench_function("gc view types all", |b| { b.iter(|| { - black_box(array.gc()); + hint::black_box(array.gc()); }); }); let sliced = array.slice(0, 100_000 / 2); c.bench_function("gc view types slice half", |b| { b.iter(|| { - black_box(sliced.gc()); + hint::black_box(sliced.gc()); }); }); } diff --git a/arrow-array/benches/occupancy.rs b/arrow-array/benches/occupancy.rs index fd334b6132..2830203641 100644 --- a/arrow-array/benches/occupancy.rs +++ b/arrow-array/benches/occupancy.rs @@ -20,7 +20,7 @@ use arrow_array::{DictionaryArray, Int32Array}; use arrow_buffer::NullBuffer; use criterion::*; use rand::{rng, Rng}; -use std::sync::Arc; +use std::{hint, sync::Arc}; fn gen_dict( len: usize, @@ -45,7 +45,7 @@ fn criterion_benchmark(c: &mut Criterion) { let dict = gen_dict(1024, values, occupancy, null_percent); c.bench_function(&format!("occupancy(values: {values}, occupancy: {occupancy}, null_percent: {null_percent})"), |b| { b.iter(|| { - black_box(&dict).occupancy() + hint::black_box(&dict).occupancy() }); }); } diff --git a/arrow-array/benches/union_array.rs b/arrow-array/benches/union_array.rs index 753cc8148e..f3894e249f 100644 --- a/arrow-array/benches/union_array.rs +++ b/arrow-array/benches/union_array.rs @@ -16,6 +16,7 @@ // under the License. use std::{ + hint, iter::{repeat, repeat_with}, sync::Arc, }; @@ -73,7 +74,7 @@ fn criterion_benchmark(c: &mut Criterion) { ) .unwrap(); - b.iter(|| black_box(array.logical_nulls())) + b.iter(|| hint::black_box(array.logical_nulls())) }, ); } diff --git a/arrow-buffer/benches/bit_mask.rs b/arrow-buffer/benches/bit_mask.rs index 6907e336a4..545528724e 100644 --- a/arrow-buffer/benches/bit_mask.rs +++ b/arrow-buffer/benches/bit_mask.rs @@ -16,7 +16,8 @@ // under the License. use arrow_buffer::bit_mask::set_bits; -use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion}; +use criterion::{criterion_group, criterion_main, BenchmarkId, Criterion}; +use std::hint; fn criterion_benchmark(c: &mut Criterion) { let mut group = c.benchmark_group("bit_mask"); @@ -38,11 +39,11 @@ fn criterion_benchmark(c: &mut Criterion) { |b, &x| { b.iter(|| { set_bits( - black_box(&mut [0u8; 9]), - black_box(&[x.3; 9]), - black_box(x.0), - black_box(x.1), - black_box(x.2), + hint::black_box(&mut [0u8; 9]), + hint::black_box(&[x.3; 9]), + hint::black_box(x.0), + hint::black_box(x.1), + hint::black_box(x.2), ) }); }, diff --git a/arrow-buffer/benches/i256.rs b/arrow-buffer/benches/i256.rs index f94ca6951e..7dec226bbc 100644 --- a/arrow-buffer/benches/i256.rs +++ b/arrow-buffer/benches/i256.rs @@ -19,7 +19,7 @@ use arrow_buffer::i256; use criterion::*; use rand::rngs::StdRng; use rand::{Rng, SeedableRng}; -use std::str::FromStr; +use std::{hint, str::FromStr}; const SIZE: usize = 1024; @@ -37,7 +37,7 @@ fn criterion_benchmark(c: &mut Criterion) { ]; for number in numbers { - let t = black_box(number.to_string()); + let t = hint::black_box(number.to_string()); c.bench_function(&format!("i256_parse({t})"), |b| { b.iter(|| i256::from_str(&t).unwrap()); }); @@ -64,7 +64,7 @@ fn criterion_benchmark(c: &mut Criterion) { c.bench_function("i256_div_rem small quotient", |b| { b.iter(|| { for (n, d) in numerators.iter().zip(&divisors) { - black_box(n.wrapping_div(*d)); + hint::black_box(n.wrapping_div(*d)); } }); }); @@ -76,7 +76,7 @@ fn criterion_benchmark(c: &mut Criterion) { c.bench_function("i256_div_rem small divisor", |b| { b.iter(|| { for (n, d) in numerators.iter().zip(&divisors) { - black_box(n.wrapping_div(*d)); + hint::black_box(n.wrapping_div(*d)); } }); }); diff --git a/arrow-buffer/benches/offset.rs b/arrow-buffer/benches/offset.rs index 12c00a60c5..0d6128b692 100644 --- a/arrow-buffer/benches/offset.rs +++ b/arrow-buffer/benches/offset.rs @@ -19,12 +19,13 @@ use arrow_buffer::{OffsetBuffer, OffsetBufferBuilder}; use criterion::*; use rand::rngs::StdRng; use rand::{Rng, SeedableRng}; +use std::hint; const SIZE: usize = 1024; fn criterion_benchmark(c: &mut Criterion) { let mut rng = StdRng::seed_from_u64(42); - let lengths: Vec<usize> = black_box((0..SIZE).map(|_| rng.random_range(0..40)).collect()); + let lengths: Vec<usize> = hint::black_box((0..SIZE).map(|_| rng.random_range(0..40)).collect()); c.bench_function("OffsetBuffer::from_lengths", |b| { b.iter(|| OffsetBuffer::<i32>::from_lengths(lengths.iter().copied())); @@ -41,7 +42,7 @@ fn criterion_benchmark(c: &mut Criterion) { let offsets = OffsetBuffer::<i32>::from_lengths(lengths.iter().copied()).into_inner(); c.bench_function("OffsetBuffer::new", |b| { - b.iter(|| OffsetBuffer::new(black_box(offsets.clone()))); + b.iter(|| OffsetBuffer::new(hint::black_box(offsets.clone()))); }); } diff --git a/arrow-cast/benches/parse_date.rs b/arrow-cast/benches/parse_date.rs index e05d38d2f8..0fdc139118 100644 --- a/arrow-cast/benches/parse_date.rs +++ b/arrow-cast/benches/parse_date.rs @@ -18,12 +18,13 @@ use arrow_array::types::Date32Type; use arrow_cast::parse::Parser; use criterion::*; +use std::hint; fn criterion_benchmark(c: &mut Criterion) { let timestamps = ["2020-09-08", "2020-9-8", "2020-09-8", "2020-9-08"]; for timestamp in timestamps { - let t = black_box(timestamp); + let t = hint::black_box(timestamp); c.bench_function(t, |b| { b.iter(|| Date32Type::parse(t).unwrap()); }); diff --git a/arrow-cast/benches/parse_decimal.rs b/arrow-cast/benches/parse_decimal.rs index 5682859dd2..28364b733c 100644 --- a/arrow-cast/benches/parse_decimal.rs +++ b/arrow-cast/benches/parse_decimal.rs @@ -18,6 +18,7 @@ use arrow_array::types::Decimal256Type; use arrow_cast::parse::parse_decimal; use criterion::*; +use std::hint; fn criterion_benchmark(c: &mut Criterion) { let decimals = [ @@ -45,7 +46,7 @@ fn criterion_benchmark(c: &mut Criterion) { ]; for decimal in decimals { - let d = black_box(decimal); + let d = hint::black_box(decimal); c.bench_function(d, |b| { b.iter(|| parse_decimal::<Decimal256Type>(d, 20, 3).unwrap()); }); diff --git a/arrow-cast/benches/parse_time.rs b/arrow-cast/benches/parse_time.rs index d28b9c7c61..8d3915bdaf 100644 --- a/arrow-cast/benches/parse_time.rs +++ b/arrow-cast/benches/parse_time.rs @@ -17,6 +17,7 @@ use arrow_cast::parse::string_to_time_nanoseconds; use criterion::*; +use std::hint; fn criterion_benchmark(c: &mut Criterion) { let timestamps = [ @@ -31,7 +32,7 @@ fn criterion_benchmark(c: &mut Criterion) { ]; for timestamp in timestamps { - let t = black_box(timestamp); + let t = hint::black_box(timestamp); c.bench_function(t, |b| { b.iter(|| string_to_time_nanoseconds(t).unwrap()); }); diff --git a/arrow-cast/benches/parse_timestamp.rs b/arrow-cast/benches/parse_timestamp.rs index d3ab41863e..12cad5b78e 100644 --- a/arrow-cast/benches/parse_timestamp.rs +++ b/arrow-cast/benches/parse_timestamp.rs @@ -17,6 +17,7 @@ use arrow_cast::parse::string_to_timestamp_nanos; use criterion::*; +use std::hint; fn criterion_benchmark(c: &mut Criterion) { let timestamps = [ @@ -33,7 +34,7 @@ fn criterion_benchmark(c: &mut Criterion) { ]; for timestamp in timestamps { - let t = black_box(timestamp); + let t = hint::black_box(timestamp); c.bench_function(t, |b| { b.iter(|| string_to_timestamp_nanos(t).unwrap()); }); diff --git a/arrow/Cargo.toml b/arrow/Cargo.toml index 31398b462e..45d6018286 100644 --- a/arrow/Cargo.toml +++ b/arrow/Cargo.toml @@ -84,7 +84,7 @@ canonical_extension_types = ["arrow-schema/canonical_extension_types"] [dev-dependencies] chrono = { workspace = true } -criterion = { version = "0.5", default-features = false } +criterion = { version = "0.6", default-features = false } half = { version = "2.1", default-features = false } rand = { version = "0.9", default-features = false, features = ["std", "std_rng", "thread_rng"] } serde = { version = "1.0", default-features = false, features = ["derive"] } diff --git a/arrow/benches/arithmetic_kernels.rs b/arrow/benches/arithmetic_kernels.rs index e982b0eb4b..af2db62ccd 100644 --- a/arrow/benches/arithmetic_kernels.rs +++ b/arrow/benches/arithmetic_kernels.rs @@ -23,6 +23,7 @@ use arrow::compute::kernels::numeric::*; use arrow::datatypes::Float32Type; use arrow::util::bench_util::*; use arrow_array::Scalar; +use std::hint; fn add_benchmark(c: &mut Criterion) { const BATCH_SIZE: usize = 64 * 1024; @@ -33,43 +34,43 @@ fn add_benchmark(c: &mut Criterion) { let scalar = Scalar::new(&scalar_a); c.bench_function(&format!("add({null_density})"), |b| { - b.iter(|| criterion::black_box(add_wrapping(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(add_wrapping(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("add_checked({null_density})"), |b| { - b.iter(|| criterion::black_box(add(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(add(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("add_scalar({null_density})"), |b| { - b.iter(|| criterion::black_box(add_wrapping(&arr_a, &scalar).unwrap())) + b.iter(|| hint::black_box(add_wrapping(&arr_a, &scalar).unwrap())) }); c.bench_function(&format!("subtract({null_density})"), |b| { - b.iter(|| criterion::black_box(sub_wrapping(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(sub_wrapping(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("subtract_checked({null_density})"), |b| { - b.iter(|| criterion::black_box(sub(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(sub(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("subtract_scalar({null_density})"), |b| { - b.iter(|| criterion::black_box(sub_wrapping(&arr_a, &scalar).unwrap())) + b.iter(|| hint::black_box(sub_wrapping(&arr_a, &scalar).unwrap())) }); c.bench_function(&format!("multiply({null_density})"), |b| { - b.iter(|| criterion::black_box(mul_wrapping(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(mul_wrapping(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("multiply_checked({null_density})"), |b| { - b.iter(|| criterion::black_box(mul(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(mul(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("multiply_scalar({null_density})"), |b| { - b.iter(|| criterion::black_box(mul_wrapping(&arr_a, &scalar).unwrap())) + b.iter(|| hint::black_box(mul_wrapping(&arr_a, &scalar).unwrap())) }); c.bench_function(&format!("divide({null_density})"), |b| { - b.iter(|| criterion::black_box(div(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(div(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("divide_scalar({null_density})"), |b| { - b.iter(|| criterion::black_box(div(&arr_a, &scalar).unwrap())) + b.iter(|| hint::black_box(div(&arr_a, &scalar).unwrap())) }); c.bench_function(&format!("modulo({null_density})"), |b| { - b.iter(|| criterion::black_box(rem(&arr_a, &arr_b).unwrap())) + b.iter(|| hint::black_box(rem(&arr_a, &arr_b).unwrap())) }); c.bench_function(&format!("modulo_scalar({null_density})"), |b| { - b.iter(|| criterion::black_box(rem(&arr_a, &scalar).unwrap())) + b.iter(|| hint::black_box(rem(&arr_a, &scalar).unwrap())) }); } } diff --git a/arrow/benches/array_from_vec.rs b/arrow/benches/array_from_vec.rs index c256d1523b..2850eae5d7 100644 --- a/arrow/benches/array_from_vec.rs +++ b/arrow/benches/array_from_vec.rs @@ -25,11 +25,11 @@ extern crate arrow; use arrow::array::*; use arrow_buffer::i256; use rand::Rng; -use std::sync::Arc; +use std::{hint, sync::Arc}; fn array_from_vec(n: usize) { let v: Vec<i32> = (0..n as i32).collect(); - criterion::black_box(Int32Array::from(v)); + hint::black_box(Int32Array::from(v)); } fn array_string_from_vec(n: usize) { @@ -41,7 +41,7 @@ fn array_string_from_vec(n: usize) { v.push(None); } } - criterion::black_box(StringArray::from(v)); + hint::black_box(StringArray::from(v)); } fn struct_array_values( @@ -70,11 +70,11 @@ fn struct_array_from_vec( let strings: ArrayRef = Arc::new(StringArray::from(strings.to_owned())); let ints: ArrayRef = Arc::new(Int32Array::from(ints.to_owned())); - criterion::black_box(StructArray::try_from(vec![(field1, strings), (field2, ints)]).unwrap()); + hint::black_box(StructArray::try_from(vec![(field1, strings), (field2, ints)]).unwrap()); } fn decimal128_array_from_vec(array: &[Option<i128>]) { - criterion::black_box( + hint::black_box( array .iter() .copied() @@ -85,7 +85,7 @@ fn decimal128_array_from_vec(array: &[Option<i128>]) { } fn decimal256_array_from_vec(array: &[Option<i256>]) { - criterion::black_box( + hint::black_box( array .iter() .copied() diff --git a/arrow/benches/bit_length_kernel.rs b/arrow/benches/bit_length_kernel.rs index 51d3134571..a8368bf3d2 100644 --- a/arrow/benches/bit_length_kernel.rs +++ b/arrow/benches/bit_length_kernel.rs @@ -22,9 +22,10 @@ use criterion::Criterion; extern crate arrow; use arrow::{array::*, compute::kernels::length::bit_length}; +use std::hint; fn bench_bit_length(array: &StringArray) { - criterion::black_box(bit_length(array).unwrap()); + hint::black_box(bit_length(array).unwrap()); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/bitwise_kernel.rs b/arrow/benches/bitwise_kernel.rs index 8604ea97eb..f8a1c6bec1 100644 --- a/arrow/benches/bitwise_kernel.rs +++ b/arrow/benches/bitwise_kernel.rs @@ -23,8 +23,9 @@ use arrow::compute::kernels::bitwise::{ bitwise_xor_scalar, }; use arrow::datatypes::Int64Type; -use criterion::{black_box, Criterion}; +use criterion::Criterion; use rand::RngCore; +use std::hint; extern crate arrow; @@ -40,37 +41,37 @@ fn bitwise_array_benchmark(c: &mut Criterion) { // array and let mut group = c.benchmark_group("bench bitwise array: and"); group.bench_function("bitwise array and, no nulls", |b| { - b.iter(|| black_box(bitwise_and(&left_without_null, &right_without_null).unwrap())) + b.iter(|| hint::black_box(bitwise_and(&left_without_null, &right_without_null).unwrap())) }); group.bench_function("bitwise array and, 20% nulls", |b| { - b.iter(|| black_box(bitwise_and(&left_with_null, &right_with_null).unwrap())) + b.iter(|| hint::black_box(bitwise_and(&left_with_null, &right_with_null).unwrap())) }); group.finish(); // array or let mut group = c.benchmark_group("bench bitwise: or"); group.bench_function("bitwise array or, no nulls", |b| { - b.iter(|| black_box(bitwise_or(&left_without_null, &right_without_null).unwrap())) + b.iter(|| hint::black_box(bitwise_or(&left_without_null, &right_without_null).unwrap())) }); group.bench_function("bitwise array or, 20% nulls", |b| { - b.iter(|| black_box(bitwise_or(&left_with_null, &right_with_null).unwrap())) + b.iter(|| hint::black_box(bitwise_or(&left_with_null, &right_with_null).unwrap())) }); group.finish(); // xor let mut group = c.benchmark_group("bench bitwise: xor"); group.bench_function("bitwise array xor, no nulls", |b| { - b.iter(|| black_box(bitwise_xor(&left_without_null, &right_without_null).unwrap())) + b.iter(|| hint::black_box(bitwise_xor(&left_without_null, &right_without_null).unwrap())) }); group.bench_function("bitwise array xor, 20% nulls", |b| { - b.iter(|| black_box(bitwise_xor(&left_with_null, &right_with_null).unwrap())) + b.iter(|| hint::black_box(bitwise_xor(&left_with_null, &right_with_null).unwrap())) }); group.finish(); // not let mut group = c.benchmark_group("bench bitwise: not"); group.bench_function("bitwise array not, no nulls", |b| { - b.iter(|| black_box(bitwise_not(&left_without_null).unwrap())) + b.iter(|| hint::black_box(bitwise_not(&left_without_null).unwrap())) }); group.bench_function("bitwise array not, 20% nulls", |b| { - b.iter(|| black_box(bitwise_not(&left_with_null).unwrap())) + b.iter(|| hint::black_box(bitwise_not(&left_with_null).unwrap())) }); group.finish(); } @@ -83,28 +84,28 @@ fn bitwise_array_scalar_benchmark(c: &mut Criterion) { // array scalar and let mut group = c.benchmark_group("bench bitwise array scalar: and"); group.bench_function("bitwise array scalar and, no nulls", |b| { - b.iter(|| black_box(bitwise_and_scalar(&array_without_null, scalar).unwrap())) + b.iter(|| hint::black_box(bitwise_and_scalar(&array_without_null, scalar).unwrap())) }); group.bench_function("bitwise array and, 20% nulls", |b| { - b.iter(|| black_box(bitwise_and_scalar(&array_with_null, scalar).unwrap())) + b.iter(|| hint::black_box(bitwise_and_scalar(&array_with_null, scalar).unwrap())) }); group.finish(); // array scalar or let mut group = c.benchmark_group("bench bitwise array scalar: or"); group.bench_function("bitwise array scalar or, no nulls", |b| { - b.iter(|| black_box(bitwise_or_scalar(&array_without_null, scalar).unwrap())) + b.iter(|| hint::black_box(bitwise_or_scalar(&array_without_null, scalar).unwrap())) }); group.bench_function("bitwise array scalar or, 20% nulls", |b| { - b.iter(|| black_box(bitwise_or_scalar(&array_with_null, scalar).unwrap())) + b.iter(|| hint::black_box(bitwise_or_scalar(&array_with_null, scalar).unwrap())) }); group.finish(); // array scalar xor let mut group = c.benchmark_group("bench bitwise array scalar: xor"); group.bench_function("bitwise array scalar xor, no nulls", |b| { - b.iter(|| black_box(bitwise_xor_scalar(&array_without_null, scalar).unwrap())) + b.iter(|| hint::black_box(bitwise_xor_scalar(&array_without_null, scalar).unwrap())) }); group.bench_function("bitwise array scalar xor, 20% nulls", |b| { - b.iter(|| black_box(bitwise_xor_scalar(&array_with_null, scalar).unwrap())) + b.iter(|| hint::black_box(bitwise_xor_scalar(&array_with_null, scalar).unwrap())) }); group.finish(); } diff --git a/arrow/benches/boolean_kernels.rs b/arrow/benches/boolean_kernels.rs index ba085e2959..8d1d51242a 100644 --- a/arrow/benches/boolean_kernels.rs +++ b/arrow/benches/boolean_kernels.rs @@ -25,17 +25,18 @@ extern crate arrow; use arrow::array::*; use arrow::compute::kernels::boolean as boolean_kernels; +use std::hint; fn bench_and(lhs: &BooleanArray, rhs: &BooleanArray) { - criterion::black_box(boolean_kernels::and(lhs, rhs).unwrap()); + hint::black_box(boolean_kernels::and(lhs, rhs).unwrap()); } fn bench_or(lhs: &BooleanArray, rhs: &BooleanArray) { - criterion::black_box(boolean_kernels::or(lhs, rhs).unwrap()); + hint::black_box(boolean_kernels::or(lhs, rhs).unwrap()); } fn bench_not(array: &BooleanArray) { - criterion::black_box(boolean_kernels::not(array).unwrap()); + hint::black_box(boolean_kernels::not(array).unwrap()); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/buffer_bit_ops.rs b/arrow/benches/buffer_bit_ops.rs index ab122ac941..b46544b1f8 100644 --- a/arrow/benches/buffer_bit_ops.rs +++ b/arrow/benches/buffer_bit_ops.rs @@ -23,6 +23,7 @@ use criterion::{Criterion, Throughput}; extern crate arrow; use arrow::buffer::{buffer_bin_and, buffer_bin_or, buffer_unary_not, Buffer, MutableBuffer}; +use std::hint; /// Helper function to create arrays fn create_buffer(size: usize) -> Buffer { @@ -36,15 +37,15 @@ fn create_buffer(size: usize) -> Buffer { } fn bench_buffer_and(left: &Buffer, right: &Buffer) { - criterion::black_box(buffer_bin_and(left, 0, right, 0, left.len() * 8)); + hint::black_box(buffer_bin_and(left, 0, right, 0, left.len() * 8)); } fn bench_buffer_or(left: &Buffer, right: &Buffer) { - criterion::black_box(buffer_bin_or(left, 0, right, 0, left.len() * 8)); + hint::black_box(buffer_bin_or(left, 0, right, 0, left.len() * 8)); } fn bench_buffer_not(buffer: &Buffer) { - criterion::black_box(buffer_unary_not(buffer, 0, buffer.len() * 8)); + hint::black_box(buffer_unary_not(buffer, 0, buffer.len() * 8)); } fn bench_buffer_and_with_offsets( @@ -54,7 +55,7 @@ fn bench_buffer_and_with_offsets( right_offset: usize, len: usize, ) { - criterion::black_box(buffer_bin_and(left, left_offset, right, right_offset, len)); + hint::black_box(buffer_bin_and(left, left_offset, right, right_offset, len)); } fn bench_buffer_or_with_offsets( @@ -64,11 +65,11 @@ fn bench_buffer_or_with_offsets( right_offset: usize, len: usize, ) { - criterion::black_box(buffer_bin_or(left, left_offset, right, right_offset, len)); + hint::black_box(buffer_bin_or(left, left_offset, right, right_offset, len)); } fn bench_buffer_not_with_offsets(buffer: &Buffer, offset: usize, len: usize) { - criterion::black_box(buffer_unary_not(buffer, offset, len)); + hint::black_box(buffer_unary_not(buffer, offset, len)); } fn bit_ops_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/buffer_create.rs b/arrow/benches/buffer_create.rs index 2c4d0d6a99..690327e86f 100644 --- a/arrow/benches/buffer_create.rs +++ b/arrow/benches/buffer_create.rs @@ -28,9 +28,10 @@ use arrow::{ buffer::{Buffer, MutableBuffer}, datatypes::ToByteSlice, }; +use std::hint; fn mutable_buffer_from_iter(data: &[Vec<bool>]) -> Vec<Buffer> { - criterion::black_box( + hint::black_box( data.iter() .map(|vec| vec.iter().copied().collect::<MutableBuffer>().into()) .collect::<Vec<_>>(), @@ -38,7 +39,7 @@ fn mutable_buffer_from_iter(data: &[Vec<bool>]) -> Vec<Buffer> { } fn buffer_from_iter(data: &[Vec<bool>]) -> Vec<Buffer> { - criterion::black_box( + hint::black_box( data.iter() .map(|vec| vec.iter().copied().collect::<Buffer>()) .collect::<Vec<_>>(), @@ -46,7 +47,7 @@ fn buffer_from_iter(data: &[Vec<bool>]) -> Vec<Buffer> { } fn mutable_buffer_iter_bitset(data: &[Vec<bool>]) -> Vec<Buffer> { - criterion::black_box({ + hint::black_box({ data.iter() .map(|datum| { let mut result = @@ -65,7 +66,7 @@ fn mutable_buffer_iter_bitset(data: &[Vec<bool>]) -> Vec<Buffer> { } fn mutable_iter_extend_from_slice(data: &[Vec<u32>], capacity: usize) -> Buffer { - criterion::black_box({ + hint::black_box({ let mut result = MutableBuffer::new(capacity); data.iter().for_each(|vec| { @@ -78,7 +79,7 @@ fn mutable_iter_extend_from_slice(data: &[Vec<u32>], capacity: usize) -> Buffer } fn mutable_buffer(data: &[Vec<u32>], capacity: usize) -> Buffer { - criterion::black_box({ + hint::black_box({ let mut result = MutableBuffer::new(capacity); data.iter().for_each(|vec| result.extend_from_slice(vec)); @@ -88,7 +89,7 @@ fn mutable_buffer(data: &[Vec<u32>], capacity: usize) -> Buffer { } fn mutable_buffer_extend(data: &[Vec<u32>], capacity: usize) -> Buffer { - criterion::black_box({ + hint::black_box({ let mut result = MutableBuffer::new(capacity); data.iter() @@ -99,7 +100,7 @@ fn mutable_buffer_extend(data: &[Vec<u32>], capacity: usize) -> Buffer { } fn from_slice(data: &[Vec<u32>], capacity: usize) -> Buffer { - criterion::black_box({ + hint::black_box({ let mut a = Vec::<u32>::with_capacity(capacity); data.iter().for_each(|vec| a.extend(vec)); @@ -147,12 +148,10 @@ fn benchmark(c: &mut Criterion) { let byte_cap = cap * std::mem::size_of::<u32>(); c.bench_function("mutable iter extend_from_slice", |b| { - b.iter(|| { - mutable_iter_extend_from_slice(criterion::black_box(&data), criterion::black_box(0)) - }) + b.iter(|| mutable_iter_extend_from_slice(hint::black_box(&data), hint::black_box(0))) }); c.bench_function("mutable", |b| { - b.iter(|| mutable_buffer(criterion::black_box(&data), criterion::black_box(0))) + b.iter(|| mutable_buffer(hint::black_box(&data), hint::black_box(0))) }); c.bench_function("mutable extend", |b| { @@ -160,24 +159,24 @@ fn benchmark(c: &mut Criterion) { }); c.bench_function("mutable prepared", |b| { - b.iter(|| mutable_buffer(criterion::black_box(&data), criterion::black_box(byte_cap))) + b.iter(|| mutable_buffer(hint::black_box(&data), hint::black_box(byte_cap))) }); c.bench_function("from_slice", |b| { - b.iter(|| from_slice(criterion::black_box(&data), criterion::black_box(0))) + b.iter(|| from_slice(hint::black_box(&data), hint::black_box(0))) }); c.bench_function("from_slice prepared", |b| { - b.iter(|| from_slice(criterion::black_box(&data), criterion::black_box(cap))) + b.iter(|| from_slice(hint::black_box(&data), hint::black_box(cap))) }); c.bench_function("MutableBuffer iter bitset", |b| { - b.iter(|| mutable_buffer_iter_bitset(criterion::black_box(&bool_data))) + b.iter(|| mutable_buffer_iter_bitset(hint::black_box(&bool_data))) }); c.bench_function("MutableBuffer::from_iter bool", |b| { - b.iter(|| mutable_buffer_from_iter(criterion::black_box(&bool_data))) + b.iter(|| mutable_buffer_from_iter(hint::black_box(&bool_data))) }); c.bench_function("Buffer::from_iter bool", |b| { - b.iter(|| buffer_from_iter(criterion::black_box(&bool_data))) + b.iter(|| buffer_from_iter(hint::black_box(&bool_data))) }); } diff --git a/arrow/benches/builder.rs b/arrow/benches/builder.rs index 4f5f38eadf..46dd18c0fa 100644 --- a/arrow/benches/builder.rs +++ b/arrow/benches/builder.rs @@ -28,6 +28,7 @@ use arrow::array::*; use arrow::util::test_util::seedable_rng; use arrow_buffer::i256; use rand::Rng; +use std::hint; // Build arrays with 512k elements. const BATCH_SIZE: usize = 8 << 10; @@ -46,7 +47,7 @@ fn bench_primitive(c: &mut Criterion) { for _ in 0..NUM_BATCHES { builder.append_slice(&data[..]); } - black_box(builder.finish()); + hint::black_box(builder.finish()); }) }); group.finish(); @@ -60,7 +61,7 @@ fn bench_primitive_nulls(c: &mut Criterion) { for _ in 0..NUM_BATCHES * BATCH_SIZE { builder.append_null(); } - black_box(builder.finish()); + hint::black_box(builder.finish()); }) }); group.finish(); @@ -83,7 +84,7 @@ fn bench_bool(c: &mut Criterion) { for _ in 0..NUM_BATCHES { builder.append_slice(&data[..]); } - black_box(builder.finish()); + hint::black_box(builder.finish()); }) }); group.finish(); @@ -101,7 +102,7 @@ fn bench_string(c: &mut Criterion) { for _ in 0..NUM_BATCHES * BATCH_SIZE { builder.append_value(SAMPLE_STRING); } - black_box(builder.finish()); + hint::black_box(builder.finish()); }) }); group.finish(); @@ -115,7 +116,7 @@ fn bench_decimal128(c: &mut Criterion) { for _ in 0..BATCH_SIZE { decimal_builder.append_value(rng.random_range::<i128, _>(0..9999999999)); } - black_box( + hint::black_box( decimal_builder .finish() .with_precision_and_scale(38, 0) @@ -134,7 +135,7 @@ fn bench_decimal256(c: &mut Criterion) { decimal_builder .append_value(i256::from_i128(rng.random_range::<i128, _>(0..99999999999))); } - black_box( + hint::black_box( decimal_builder .finish() .with_precision_and_scale(76, 10) diff --git a/arrow/benches/cast_kernels.rs b/arrow/benches/cast_kernels.rs index a68fc48d30..d01031be5f 100644 --- a/arrow/benches/cast_kernels.rs +++ b/arrow/benches/cast_kernels.rs @@ -20,6 +20,7 @@ extern crate criterion; use criterion::Criterion; use rand::distr::{Distribution, StandardUniform, Uniform}; use rand::Rng; +use std::hint; use chrono::DateTime; use std::sync::Arc; @@ -139,7 +140,7 @@ fn build_dict_array(size: usize) -> ArrayRef { // cast array from specified primitive array type to desired data type fn cast_array(array: &ArrayRef, to_type: DataType) { - criterion::black_box(cast(array, &to_type).unwrap()); + hint::black_box(cast(array, &to_type).unwrap()); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/comparison_kernels.rs b/arrow/benches/comparison_kernels.rs index c12fd2ad35..c29200d800 100644 --- a/arrow/benches/comparison_kernels.rs +++ b/arrow/benches/comparison_kernels.rs @@ -29,6 +29,7 @@ use arrow_string::regexp::regexp_is_match_scalar; use criterion::Criterion; use rand::rngs::StdRng; use rand::Rng; +use std::hint; const SIZE: usize = 65536; @@ -53,21 +54,11 @@ fn bench_nilike_utf8_scalar(arr_a: &StringArray, value_b: &str) { } fn bench_stringview_regexp_is_match_scalar(arr_a: &StringViewArray, value_b: &str) { - regexp_is_match_scalar( - criterion::black_box(arr_a), - criterion::black_box(value_b), - None, - ) - .unwrap(); + regexp_is_match_scalar(hint::black_box(arr_a), hint::black_box(value_b), None).unwrap(); } fn bench_string_regexp_is_match_scalar(arr_a: &StringArray, value_b: &str) { - regexp_is_match_scalar( - criterion::black_box(arr_a), - criterion::black_box(value_b), - None, - ) - .unwrap(); + regexp_is_match_scalar(hint::black_box(arr_a), hint::black_box(value_b), None).unwrap(); } fn make_string_array(size: usize, rng: &mut StdRng) -> impl Iterator<Item = Option<String>> + '_ { diff --git a/arrow/benches/concatenate_kernel.rs b/arrow/benches/concatenate_kernel.rs index ee7b170b36..cf2a91b1e4 100644 --- a/arrow/benches/concatenate_kernel.rs +++ b/arrow/benches/concatenate_kernel.rs @@ -26,13 +26,14 @@ use arrow::array::*; use arrow::compute::concat; use arrow::datatypes::*; use arrow::util::bench_util::*; +use std::hint; fn bench_concat(v1: &dyn Array, v2: &dyn Array) { - criterion::black_box(concat(&[v1, v2]).unwrap()); + hint::black_box(concat(&[v1, v2]).unwrap()); } fn bench_concat_arrays(arrays: &[&dyn Array]) { - criterion::black_box(concat(arrays).unwrap()); + hint::black_box(concat(arrays).unwrap()); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/csv_writer.rs b/arrow/benches/csv_writer.rs index 85bd8ca383..030494aaf9 100644 --- a/arrow/benches/csv_writer.rs +++ b/arrow/benches/csv_writer.rs @@ -25,6 +25,7 @@ use arrow::csv; use arrow::datatypes::*; use std::env; use std::fs::File; +use std::hint; use std::sync::Arc; fn criterion_benchmark(c: &mut Criterion) { @@ -57,7 +58,7 @@ fn criterion_benchmark(c: &mut Criterion) { c.bench_function("record_batches_to_csv", |b| { b.iter(|| { #[allow(clippy::unit_arg)] - criterion::black_box(for batch in &batches { + hint::black_box(for batch in &batches { writer.write(batch).unwrap() }); }); diff --git a/arrow/benches/equal.rs b/arrow/benches/equal.rs index 4e99bf3071..0d6075f392 100644 --- a/arrow/benches/equal.rs +++ b/arrow/benches/equal.rs @@ -26,9 +26,10 @@ extern crate arrow; use arrow::util::bench_util::*; use arrow::{array::*, datatypes::Float32Type}; +use std::hint; fn bench_equal<A: Array + PartialEq<A>>(arr_a: &A) { - criterion::black_box(arr_a == arr_a); + hint::black_box(arr_a == arr_a); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/filter_kernels.rs b/arrow/benches/filter_kernels.rs index 18b6e2a938..354fe606dd 100644 --- a/arrow/benches/filter_kernels.rs +++ b/arrow/benches/filter_kernels.rs @@ -27,13 +27,14 @@ use arrow::datatypes::{Field, Float32Type, Int32Type, Int64Type, Schema, UInt8Ty use arrow_array::types::Decimal128Type; use criterion::{criterion_group, criterion_main, Criterion}; +use std::hint; fn bench_filter(data_array: &dyn Array, filter_array: &BooleanArray) { - criterion::black_box(filter(data_array, filter_array).unwrap()); + hint::black_box(filter(data_array, filter_array).unwrap()); } fn bench_built_filter(filter: &FilterPredicate, array: &dyn Array) { - criterion::black_box(filter.filter(array).unwrap()); + hint::black_box(filter.filter(array).unwrap()); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/interleave_kernels.rs b/arrow/benches/interleave_kernels.rs index ed7ac12379..77dc9500ea 100644 --- a/arrow/benches/interleave_kernels.rs +++ b/arrow/benches/interleave_kernels.rs @@ -29,6 +29,7 @@ use arrow::datatypes::*; use arrow::util::test_util::seedable_rng; use arrow::{array::*, util::bench_util::*}; use arrow_select::interleave::interleave; +use std::hint; fn do_bench( c: &mut Criterion, @@ -61,7 +62,7 @@ fn bench_values(c: &mut Criterion, name: &str, len: usize, values: &[&dyn Array] .collect(); c.bench_function(name, |b| { - b.iter(|| criterion::black_box(interleave(values, &indices).unwrap())) + b.iter(|| hint::black_box(interleave(values, &indices).unwrap())) }); } diff --git a/arrow/benches/json_reader.rs b/arrow/benches/json_reader.rs index e0e46d3d78..09786bd4c5 100644 --- a/arrow/benches/json_reader.rs +++ b/arrow/benches/json_reader.rs @@ -23,6 +23,7 @@ use arrow::util::bench_util::{ }; use arrow_array::RecordBatch; use arrow_json::{LineDelimitedWriter, ReaderBuilder}; +use std::hint; use std::io::Cursor; use std::sync::Arc; @@ -30,7 +31,7 @@ use std::sync::Arc; fn do_bench(c: &mut Criterion, name: &str, json: &str, schema: SchemaRef) { c.bench_function(name, |b| { b.iter(|| { - let cursor = Cursor::new(black_box(json)); + let cursor = Cursor::new(hint::black_box(json)); let builder = ReaderBuilder::new(schema.clone()).with_batch_size(64); let reader = builder.build(cursor).unwrap(); for next in reader { diff --git a/arrow/benches/length_kernel.rs b/arrow/benches/length_kernel.rs index b70f6374f8..338dd58952 100644 --- a/arrow/benches/length_kernel.rs +++ b/arrow/benches/length_kernel.rs @@ -23,9 +23,10 @@ extern crate arrow; use arrow::array::*; use arrow::compute::kernels::length::length; +use std::hint; fn bench_length(array: &StringArray) { - criterion::black_box(length(array).unwrap()); + hint::black_box(length(array).unwrap()); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/lexsort.rs b/arrow/benches/lexsort.rs index bb1c6081ea..6e6f607f7b 100644 --- a/arrow/benches/lexsort.rs +++ b/arrow/benches/lexsort.rs @@ -25,7 +25,7 @@ use arrow_array::types::Int32Type; use arrow_array::{Array, ArrayRef, UInt32Array}; use arrow_schema::{DataType, Field}; use criterion::{criterion_group, criterion_main, Criterion}; -use std::sync::Arc; +use std::{hint, sync::Arc}; #[derive(Copy, Clone)] enum Column { @@ -128,12 +128,12 @@ fn do_bench(c: &mut Criterion, columns: &[Column], len: usize) { .collect(); c.bench_function(&format!("lexsort_to_indices({columns:?}): {len}"), |b| { - b.iter(|| criterion::black_box(lexsort_to_indices(&sort_columns, None).unwrap())) + b.iter(|| hint::black_box(lexsort_to_indices(&sort_columns, None).unwrap())) }); c.bench_function(&format!("lexsort_rows({columns:?}): {len}"), |b| { b.iter(|| { - criterion::black_box({ + hint::black_box({ let fields = arrays .iter() .map(|a| SortField::new(a.data_type().clone())) diff --git a/arrow/benches/partition_kernels.rs b/arrow/benches/partition_kernels.rs index e6a067def2..82de6e0f00 100644 --- a/arrow/benches/partition_kernels.rs +++ b/arrow/benches/partition_kernels.rs @@ -28,7 +28,7 @@ use arrow::{ }; use arrow_ord::partition::partition; use rand::distr::{Distribution, StandardUniform}; -use std::iter; +use std::{hint, iter}; fn create_array<T: ArrowPrimitiveType>(size: usize, with_nulls: bool) -> ArrayRef where @@ -40,7 +40,7 @@ where } fn bench_partition(sorted_columns: &[ArrayRef]) { - criterion::black_box(partition(sorted_columns).unwrap().ranges()); + hint::black_box(partition(sorted_columns).unwrap().ranges()); } fn create_sorted_low_cardinality_data(length: usize) -> Vec<ArrayRef> { diff --git a/arrow/benches/primitive_run_take.rs b/arrow/benches/primitive_run_take.rs index cabf9c118f..8e5dbced62 100644 --- a/arrow/benches/primitive_run_take.rs +++ b/arrow/benches/primitive_run_take.rs @@ -23,6 +23,7 @@ use arrow::util::test_util::seedable_rng; use arrow_array::UInt32Array; use criterion::{criterion_group, criterion_main, Criterion}; use rand::Rng; +use std::hint; fn create_random_index(size: usize, null_density: f32, max_value: usize) -> UInt32Array { let mut rng = seedable_rng(); @@ -52,7 +53,7 @@ fn criterion_benchmark(c: &mut Criterion) { "(run_array_len:{logical_array_len}, physical_array_len:{physical_array_len}, take_len:{take_len})"), |b| { b.iter(|| { - criterion::black_box(take(&run_array, &indices, None).unwrap()); + hint::black_box(take(&run_array, &indices, None).unwrap()); }) }, ); diff --git a/arrow/benches/regexp_kernels.rs b/arrow/benches/regexp_kernels.rs index d5ffbcb997..c48cf7de02 100644 --- a/arrow/benches/regexp_kernels.rs +++ b/arrow/benches/regexp_kernels.rs @@ -24,9 +24,10 @@ extern crate arrow; use arrow::array::*; use arrow::compute::kernels::regexp::*; use arrow::util::bench_util::*; +use std::hint; fn bench_regexp(arr: &GenericStringArray<i32>, regex_array: &dyn Datum) { - regexp_match(criterion::black_box(arr), regex_array, None).unwrap(); + regexp_match(hint::black_box(arr), regex_array, None).unwrap(); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/row_format.rs b/arrow/benches/row_format.rs index 773cdc6520..5b1ce05f2a 100644 --- a/arrow/benches/row_format.rs +++ b/arrow/benches/row_format.rs @@ -28,8 +28,8 @@ use arrow::util::bench_util::{ }; use arrow_array::types::Int32Type; use arrow_array::Array; -use criterion::{black_box, Criterion}; -use std::sync::Arc; +use criterion::Criterion; +use std::{hint, sync::Arc}; fn do_bench(c: &mut Criterion, name: &str, cols: Vec<ArrayRef>) { let fields: Vec<_> = cols @@ -40,7 +40,7 @@ fn do_bench(c: &mut Criterion, name: &str, cols: Vec<ArrayRef>) { c.bench_function(&format!("convert_columns {name}"), |b| { b.iter(|| { let converter = RowConverter::new(fields.clone()).unwrap(); - black_box(converter.convert_columns(&cols).unwrap()) + hint::black_box(converter.convert_columns(&cols).unwrap()) }); }); @@ -48,11 +48,11 @@ fn do_bench(c: &mut Criterion, name: &str, cols: Vec<ArrayRef>) { let rows = converter.convert_columns(&cols).unwrap(); // using a pre-prepared row converter should be faster than the first time c.bench_function(&format!("convert_columns_prepared {name}"), |b| { - b.iter(|| black_box(converter.convert_columns(&cols).unwrap())); + b.iter(|| hint::black_box(converter.convert_columns(&cols).unwrap())); }); c.bench_function(&format!("convert_rows {name}"), |b| { - b.iter(|| black_box(converter.convert_rows(&rows).unwrap())); + b.iter(|| hint::black_box(converter.convert_rows(&rows).unwrap())); }); } @@ -66,7 +66,7 @@ fn bench_iter(c: &mut Criterion) { c.bench_function("iterate rows", |b| { b.iter(|| { for r in rows.iter() { - std::hint::black_box(r.as_ref()); + hint::black_box(r.as_ref()); } }) }); diff --git a/arrow/benches/sort_kernel.rs b/arrow/benches/sort_kernel.rs index b6578d8d80..012babd15d 100644 --- a/arrow/benches/sort_kernel.rs +++ b/arrow/benches/sort_kernel.rs @@ -17,7 +17,7 @@ #[macro_use] extern crate criterion; -use criterion::{black_box, Criterion}; +use criterion::Criterion; use std::sync::Arc; @@ -28,6 +28,7 @@ use arrow::datatypes::{Int16Type, Int32Type}; use arrow::util::bench_util::*; use arrow::{array::*, datatypes::Float32Type}; use arrow_ord::rank::rank; +use std::hint; fn create_f32_array(size: usize, with_nulls: bool) -> ArrayRef { let null_density = if with_nulls { 0.5 } else { 0.0 }; @@ -43,7 +44,7 @@ fn create_bool_array(size: usize, with_nulls: bool) -> ArrayRef { } fn bench_sort(array: &dyn Array) { - black_box(sort(array, None).unwrap()); + hint::black_box(sort(array, None).unwrap()); } fn bench_lexsort(array_a: &ArrayRef, array_b: &ArrayRef, limit: Option<usize>) { @@ -58,11 +59,11 @@ fn bench_lexsort(array_a: &ArrayRef, array_b: &ArrayRef, limit: Option<usize>) { }, ]; - black_box(lexsort(&columns, limit).unwrap()); + hint::black_box(lexsort(&columns, limit).unwrap()); } fn bench_sort_to_indices(array: &dyn Array, limit: Option<usize>) { - black_box(sort_to_indices(array, None, limit).unwrap()); + hint::black_box(sort_to_indices(array, None, limit).unwrap()); } fn add_benchmark(c: &mut Criterion) { @@ -215,22 +216,22 @@ fn add_benchmark(c: &mut Criterion) { let arr = create_f32_array(2usize.pow(12), false); c.bench_function("rank f32 2^12", |b| { - b.iter(|| black_box(rank(&arr, None).unwrap())) + b.iter(|| hint::black_box(rank(&arr, None).unwrap())) }); let arr = create_f32_array(2usize.pow(12), true); c.bench_function("rank f32 nulls 2^12", |b| { - b.iter(|| black_box(rank(&arr, None).unwrap())) + b.iter(|| hint::black_box(rank(&arr, None).unwrap())) }); let arr = create_string_array_with_len::<i32>(2usize.pow(12), 0.0, 10); c.bench_function("rank string[10] 2^12", |b| { - b.iter(|| black_box(rank(&arr, None).unwrap())) + b.iter(|| hint::black_box(rank(&arr, None).unwrap())) }); let arr = create_string_array_with_len::<i32>(2usize.pow(12), 0.5, 10); c.bench_function("rank string[10] nulls 2^12", |b| { - b.iter(|| black_box(rank(&arr, None).unwrap())) + b.iter(|| hint::black_box(rank(&arr, None).unwrap())) }); } diff --git a/arrow/benches/substring_kernels.rs b/arrow/benches/substring_kernels.rs index 6bbfc9c098..bf910e7aaf 100644 --- a/arrow/benches/substring_kernels.rs +++ b/arrow/benches/substring_kernels.rs @@ -24,9 +24,10 @@ extern crate arrow; use arrow::array::*; use arrow::compute::kernels::substring::*; use arrow::util::bench_util::*; +use std::hint; fn bench_substring(arr: &dyn Array, start: i64, length: Option<u64>) { - substring(criterion::black_box(arr), start, length).unwrap(); + substring(hint::black_box(arr), start, length).unwrap(); } fn bench_substring_by_char<O: OffsetSizeTrait>( @@ -34,7 +35,7 @@ fn bench_substring_by_char<O: OffsetSizeTrait>( start: i64, length: Option<u64>, ) { - substring_by_char(criterion::black_box(arr), start, length).unwrap(); + substring_by_char(hint::black_box(arr), start, length).unwrap(); } fn add_benchmark(c: &mut Criterion) { diff --git a/arrow/benches/take_kernels.rs b/arrow/benches/take_kernels.rs index a09064839f..a7e70d2b03 100644 --- a/arrow/benches/take_kernels.rs +++ b/arrow/benches/take_kernels.rs @@ -27,6 +27,7 @@ use arrow::compute::{take, TakeOptions}; use arrow::datatypes::*; use arrow::util::test_util::seedable_rng; use arrow::{array::*, util::bench_util::*}; +use std::hint; fn create_random_index(size: usize, null_density: f32) -> UInt32Array { let mut rng = seedable_rng(); @@ -43,11 +44,11 @@ fn create_random_index(size: usize, null_density: f32) -> UInt32Array { } fn bench_take(values: &dyn Array, indices: &UInt32Array) { - criterion::black_box(take(values, indices, None).unwrap()); + hint::black_box(take(values, indices, None).unwrap()); } fn bench_take_bounds_check(values: &dyn Array, indices: &UInt32Array) { - criterion::black_box(take(values, indices, Some(TakeOptions { check_bounds: true })).unwrap()); + hint::black_box(take(values, indices, Some(TakeOptions { check_bounds: true })).unwrap()); } fn add_benchmark(c: &mut Criterion) { diff --git a/parquet/benches/compression.rs b/parquet/benches/compression.rs index 5c9b0d1f75..b90c048ca1 100644 --- a/parquet/benches/compression.rs +++ b/parquet/benches/compression.rs @@ -20,6 +20,7 @@ use parquet::basic::{BrotliLevel, Compression, GzipLevel, ZstdLevel}; use parquet::compression::create_codec; use rand::distr::Alphanumeric; use rand::prelude::*; +use std::hint; fn do_bench(c: &mut Criterion, name: &str, uncompressed: &[u8]) { let codecs = [ @@ -57,7 +58,11 @@ fn do_bench(c: &mut Criterion, name: &str, uncompressed: &[u8]) { b.iter(|| { let mut out = Vec::new(); codec - .decompress(black_box(&compressed), &mut out, Some(uncompressed.len())) + .decompress( + hint::black_box(&compressed), + &mut out, + Some(uncompressed.len()), + ) .unwrap(); out }); diff --git a/parquet/benches/row_selector.rs b/parquet/benches/row_selector.rs index 9fa634d09d..38fb7122ab 100644 --- a/parquet/benches/row_selector.rs +++ b/parquet/benches/row_selector.rs @@ -19,6 +19,7 @@ use arrow_array::BooleanArray; use criterion::*; use parquet::arrow::arrow_reader::RowSelection; use rand::Rng; +use std::hint; /// Generates a random RowSelection with a specified selection ratio. /// @@ -52,14 +53,14 @@ fn criterion_benchmark(c: &mut Criterion) { c.bench_function("intersection", |b| { b.iter(|| { let intersection = row_selection_a.intersection(&row_selection_b); - criterion::black_box(intersection); + hint::black_box(intersection); }) }); c.bench_function("union", |b| { b.iter(|| { let union = row_selection_a.union(&row_selection_b); - criterion::black_box(union); + hint::black_box(union); }) }); @@ -68,7 +69,7 @@ fn criterion_benchmark(c: &mut Criterion) { b.iter(|| { let array = boolean_array.clone(); let selection = RowSelection::from_filters(&[array]); - criterion::black_box(selection); + hint::black_box(selection); }) }); @@ -78,7 +79,7 @@ fn criterion_benchmark(c: &mut Criterion) { RowSelection::from_filters(&[generate_random_row_selection(selected, selection_ratio)]); b.iter(|| { let result = row_selection_a.and_then(&sub_selection); - criterion::black_box(result); + hint::black_box(result); }) }); }