# HG changeset patch # User alfadur # Date 1679853319 -10800 # Node ID feb7a76915d20c76ff0900da651617ce67b982bf # Parent bcd43b90401af72e7b02729e816fb08112437db3 use multiple components for iteration benchmark diff -r bcd43b90401a -r feb7a76915d2 rust/hwphysics/benches/ecs_bench.rs --- a/rust/hwphysics/benches/ecs_bench.rs Sun Mar 26 06:06:14 2023 +0300 +++ b/rust/hwphysics/benches/ecs_bench.rs Sun Mar 26 20:55:19 2023 +0300 @@ -33,17 +33,21 @@ pub fn component_run(c: &mut Criterion) { let mut manager = GearDataManager::new(); - manager.register::(); + + manager.register::

(); + manager.register::(); + for i in 1..=SIZE { let gear_id = GearId::new(i as u16).unwrap(); - manager.add(gear_id, &Pv::default()); + manager.add(gear_id, &P::default()); + manager.add(gear_id, &V::default()); } c.bench_function("component run", |b| { b.iter(|| { manager .iter() - .run(|(item,): (&mut Pv,)| item.velocity += black_box(item.position)); + .run(|(p, v): (&mut P, &mut V)| v.velocity += black_box(p.position)); }) }); }