70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
use criterion::*;
 | 
						|
 | 
						|
use legion::prelude::*;
 | 
						|
 | 
						|
fn bench_insert_zero_baseline(c: &mut Criterion) {
 | 
						|
    c.bench_function("insert_zero_baseline", |b| {
 | 
						|
        b.iter(|| {
 | 
						|
            //let universe = Universe::new();
 | 
						|
            //let mut world = universe.create_world();
 | 
						|
            let components: Vec<isize> = (0..10000).map(|i| i).collect();
 | 
						|
            criterion::black_box(components);
 | 
						|
        });
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
fn bench_insert_one_baseline(c: &mut Criterion) {
 | 
						|
    c.bench_function("insert_one_baseline", |b| {
 | 
						|
        b.iter(|| {
 | 
						|
            let universe = Universe::new();
 | 
						|
            let mut world = universe.create_world();
 | 
						|
            let components: Vec<isize> = (0..10000).map(|i| i).collect();
 | 
						|
            criterion::black_box(components);
 | 
						|
 | 
						|
            world.insert((), vec![(1usize,)]);
 | 
						|
        });
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
fn bench_insert_unbatched(c: &mut Criterion) {
 | 
						|
    c.bench_function("insert_unbatched", |b| {
 | 
						|
        b.iter(|| {
 | 
						|
            let universe = Universe::new();
 | 
						|
            let mut world = universe.create_world();
 | 
						|
            let components: Vec<isize> = (0..10000).map(|i| i).collect();
 | 
						|
 | 
						|
            for component in components {
 | 
						|
                world.insert((), vec![(component,)]);
 | 
						|
            }
 | 
						|
        });
 | 
						|
    });
 | 
						|
}
 | 
						|
 | 
						|
fn bench_insert_batched(c: &mut Criterion) {
 | 
						|
    c.bench(
 | 
						|
        "insert_batched",
 | 
						|
        ParameterizedBenchmark::new(
 | 
						|
            "counts",
 | 
						|
            |b, n| {
 | 
						|
                b.iter(|| {
 | 
						|
                    let universe = Universe::new();
 | 
						|
                    let mut world = universe.create_world();
 | 
						|
                    let components: Vec<(isize,)> = (0..*n).map(|i| (i,)).collect();
 | 
						|
 | 
						|
                    world.insert((), components);
 | 
						|
                });
 | 
						|
            },
 | 
						|
            (1..11).map(|i| i * 1000),
 | 
						|
        ),
 | 
						|
    );
 | 
						|
}
 | 
						|
 | 
						|
criterion_group!(
 | 
						|
    basic,
 | 
						|
    bench_insert_zero_baseline,
 | 
						|
    bench_insert_one_baseline,
 | 
						|
    bench_insert_unbatched,
 | 
						|
    bench_insert_batched,
 | 
						|
);
 | 
						|
criterion_main!(basic);
 |