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);
         })
     });
 }

Reply via email to