equal
deleted
inserted
replaced
50 .run(|(p, v): (&mut P, &mut V)| v.velocity += black_box(p.position)); |
50 .run(|(p, v): (&mut P, &mut V)| v.velocity += black_box(p.position)); |
51 }) |
51 }) |
52 }); |
52 }); |
53 } |
53 } |
54 |
54 |
|
55 pub fn component_multirun(c: &mut Criterion) { |
|
56 for n in (16..=64).step_by(16) { |
|
57 let mut manager = GearDataManager::new(); |
|
58 |
|
59 manager.register::<P>(); |
|
60 manager.register::<V>(); |
|
61 |
|
62 for i in 1..=(SIZE / n) { |
|
63 let gear_id = GearId::new(i as u16).unwrap(); |
|
64 manager.add(gear_id, &P::default()); |
|
65 manager.add(gear_id, &V::default()); |
|
66 } |
|
67 |
|
68 c.bench_function(&format!("component run {}", n), |b| { |
|
69 b.iter(|| { |
|
70 for i in 0..n { |
|
71 manager |
|
72 .iter() |
|
73 .run(|(p, v): (&mut P, &mut V)| v.velocity += black_box(p.position)); |
|
74 } |
|
75 }) |
|
76 }); |
|
77 } |
|
78 } |
|
79 |
55 pub fn component_add_remove(c: &mut Criterion) { |
80 pub fn component_add_remove(c: &mut Criterion) { |
56 let mut manager = GearDataManager::new(); |
81 let mut manager = GearDataManager::new(); |
57 let mut gears1 = vec![]; |
82 let mut gears1 = vec![]; |
58 let mut gears2 = vec![]; |
83 let mut gears2 = vec![]; |
59 |
84 |
82 std::mem::swap(&mut gears1, &mut gears2); |
107 std::mem::swap(&mut gears1, &mut gears2); |
83 }) |
108 }) |
84 }); |
109 }); |
85 } |
110 } |
86 |
111 |
87 criterion_group!(benches, array_run, component_run, component_add_remove); |
112 criterion_group!(benches, array_run, component_run, component_multirun, component_add_remove); |
88 criterion_main!(benches); |
113 criterion_main!(benches); |