stress/
stress.rs

1#![allow(missing_docs)]
2use std::time::SystemTime;
3
4use xuko_ecs::{Query, QueryFilter, World, component_id};
5
6fn main() {
7    const ENTIIES: u64 = 1_000_000;
8    let time = SystemTime::now();
9
10    let mut world = World::new();
11
12    #[allow(dead_code)]
13    struct Number(u64);
14
15    for n in 0..=ENTIIES {
16        let id = world.spawn();
17        world.get_entity_mut(id).unwrap().add(Number(n));
18    }
19
20    for e in &Query::query_world(
21        &world,
22        QueryFilter::new()
23            .with_requires(&[component_id!(Number)])
24            .with_func(Some(|id, world| {
25                world.get_entity(id).unwrap().get::<Number>().unwrap().0 % 147 == 0
26            })),
27    ) {
28        world.despawn(e);
29    }
30
31    println!(
32        "spawning and filtering {ENTIIES} entities took {}ms",
33        time.elapsed().unwrap().as_millis()
34    );
35}