From e31ee868818e539963a3896c23d6e899d1d5f4e2 Mon Sep 17 00:00:00 2001 From: Nishant Chatterjee Date: Mon, 6 Apr 2026 10:47:25 -0700 Subject: [PATCH] add missing black_box --- benches/benches/bevy_ecs/fragmentation.rs | 2 ++ benches/benches/bevy_ecs/world/entity_hash.rs | 32 +++++++++++-------- benches/benches/bevy_reflect/function.rs | 14 ++++---- benches/benches/bevy_reflect/struct.rs | 12 +++---- 4 files changed, 34 insertions(+), 26 deletions(-) diff --git a/benches/benches/bevy_ecs/fragmentation.rs b/benches/benches/bevy_ecs/fragmentation.rs index e7a2f4df78520..6a62fed5d6baf 100644 --- a/benches/benches/bevy_ecs/fragmentation.rs +++ b/benches/benches/bevy_ecs/fragmentation.rs @@ -32,6 +32,7 @@ fn iter_frag_empty(c: &mut Criterion) { res += e.to_bits(); black_box(t); }); + black_box(res); }); }); group.bench_function("foreach_sparse", |b| { @@ -46,6 +47,7 @@ fn iter_frag_empty(c: &mut Criterion) { res += e.to_bits(); black_box(t); }); + black_box(res); }); }); group.finish(); diff --git a/benches/benches/bevy_ecs/world/entity_hash.rs b/benches/benches/bevy_ecs/world/entity_hash.rs index e5c5352c9e945..8a312a0bfec75 100644 --- a/benches/benches/bevy_ecs/world/entity_hash.rs +++ b/benches/benches/bevy_ecs/world/entity_hash.rs @@ -1,5 +1,6 @@ use bevy_ecs::entity::{Entity, EntityGeneration, EntityHashSet}; use chacha20::ChaCha8Rng; +use core::hint::black_box; use criterion::{BenchmarkId, Criterion, Throughput}; use rand::{RngExt, SeedableRng}; @@ -42,19 +43,22 @@ pub fn entity_set_build_and_lookup(c: &mut Criterion) { }); group.bench_function(BenchmarkId::new("entity_set_lookup_hit", size), |bencher| { let set = EntityHashSet::from_iter(entities.iter().copied()); - bencher.iter(|| entities.iter().copied().filter(|e| set.contains(e)).count()); + bencher + .iter(|| black_box(entities.iter().copied().filter(|e| set.contains(e)).count())); }); group.bench_function( BenchmarkId::new("entity_set_lookup_miss_id", size), |bencher| { let set = EntityHashSet::from_iter(entities.iter().copied()); bencher.iter(|| { - entities - .iter() - .copied() - .map(|e| Entity::from_bits(e.to_bits() + 1)) - .filter(|e| set.contains(e)) - .count() + black_box( + entities + .iter() + .copied() + .map(|e| Entity::from_bits(e.to_bits() + 1)) + .filter(|e| set.contains(e)) + .count(), + ) }); }, ); @@ -63,12 +67,14 @@ pub fn entity_set_build_and_lookup(c: &mut Criterion) { |bencher| { let set = EntityHashSet::from_iter(entities.iter().copied()); bencher.iter(|| { - entities - .iter() - .copied() - .map(|e| Entity::from_bits(e.to_bits() + (1 << 32))) - .filter(|e| set.contains(e)) - .count() + black_box( + entities + .iter() + .copied() + .map(|e| Entity::from_bits(e.to_bits() + (1 << 32))) + .filter(|e| set.contains(e)) + .count(), + ) }); }, ); diff --git a/benches/benches/bevy_reflect/function.rs b/benches/benches/bevy_reflect/function.rs index f155d227c8803..33eab7dbe0c34 100644 --- a/benches/benches/bevy_reflect/function.rs +++ b/benches/benches/bevy_reflect/function.rs @@ -21,29 +21,29 @@ fn add(a: i32, b: i32) -> i32 { fn typed(c: &mut Criterion) { c.benchmark_group(bench!("typed")) .bench_function("function", |b| { - b.iter(|| add.get_function_info()); + b.iter(|| black_box(add.get_function_info())); }) .bench_function("closure", |b| { let capture = 25; let closure = |a: i32| a + capture; - b.iter(|| closure.get_function_info()); + b.iter(|| black_box(closure.get_function_info())); }) .bench_function("closure_mut", |b| { let mut capture = 25; let closure = |a: i32| capture += a; - b.iter(|| closure.get_function_info()); + b.iter(|| black_box(closure.get_function_info())); }); } fn into(c: &mut Criterion) { c.benchmark_group(bench!("into")) .bench_function("function", |b| { - b.iter(|| add.into_function()); + b.iter(|| black_box(add.into_function())); }) .bench_function("closure", |b| { let capture = 25; let closure = |a: i32| a + capture; - b.iter(|| closure.into_function()); + b.iter(|| black_box(closure.into_function())); }) .bench_function("closure_mut", |b| { let mut _capture = 25; @@ -53,7 +53,7 @@ fn into(c: &mut Criterion) { reason = "rustc bug https://github.com/rust-lang/rust/issues/149889" )] let closure = move |a: i32| _capture += a; - b.iter(|| closure.into_function_mut()); + b.iter(|| black_box(closure.into_function_mut())); }); } @@ -98,7 +98,7 @@ fn clone(c: &mut Criterion) { c.benchmark_group(bench!("clone")) .bench_function("function", |b| { let add = add.into_function(); - b.iter(|| add.clone()); + b.iter(|| black_box(add.clone())); }); } diff --git a/benches/benches/bevy_reflect/struct.rs b/benches/benches/bevy_reflect/struct.rs index c368cc1168dea..52c15ad0fb0e4 100644 --- a/benches/benches/bevy_reflect/struct.rs +++ b/benches/benches/bevy_reflect/struct.rs @@ -160,14 +160,14 @@ fn concrete_struct_type_info(criterion: &mut Criterion) { BenchmarkId::new("NonGeneric", field_count), &standard, |bencher, s| { - bencher.iter(|| s.get_represented_type_info()); + bencher.iter(|| black_box(s.get_represented_type_info())); }, ); group.bench_with_input( BenchmarkId::new("Generic", field_count), &generic, |bencher, s| { - bencher.iter(|| s.get_represented_type_info()); + bencher.iter(|| black_box(s.get_represented_type_info())); }, ); } @@ -206,14 +206,14 @@ fn concrete_struct_to_dynamic_struct(criterion: &mut Criterion) { BenchmarkId::new("NonGeneric", field_count), &standard, |bencher, s| { - bencher.iter(|| s.to_dynamic_struct()); + bencher.iter(|| black_box(s.to_dynamic_struct())); }, ); group.bench_with_input( BenchmarkId::new("Generic", field_count), &generic, |bencher, s| { - bencher.iter(|| s.to_dynamic_struct()); + bencher.iter(|| black_box(s.to_dynamic_struct())); }, ); } @@ -237,7 +237,7 @@ fn dynamic_struct_to_dynamic_struct(criterion: &mut Criterion) { BenchmarkId::from_parameter(field_count), &s, |bencher, s| { - bencher.iter(|| s.to_dynamic_struct()); + bencher.iter(|| black_box(s.to_dynamic_struct())); }, ); } @@ -347,7 +347,7 @@ fn dynamic_struct_get_field(criterion: &mut Criterion) { } let field = black_box("field_63"); - bencher.iter(|| s.get_field::<()>(field)); + bencher.iter(|| black_box(s.get_field::<()>(field))); }, ); }