💹 Add benchmark for Pane::step

main
Shad Amethyst 2 years ago
parent 949da3cd14
commit f0a4f8b0f6
Signed by: amethyst
GPG Key ID: D970C8DD1D6DEE36

@ -11,3 +11,8 @@ palette = "0.6"
[dev-dependencies]
colored = "2.0"
criterion = { version = "0.3.5", features = ["html_reports"] }
[[bench]]
name = "dispatch"
harness = false

@ -0,0 +1,29 @@
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use stackline::prelude::*;
use stackline::tile::*;
fn benchmark_step(c: &mut Criterion) {
c.bench_function("Pane::step", |b| {
let mut pane = Pane::empty(3, 3).unwrap();
pane.set_tile((0, 0), Diode::new(Direction::Right));
pane.set_tile((2, 0), Diode::new(Direction::Down));
pane.set_tile((2, 2), Diode::new(Direction::Left));
pane.set_tile((0, 2), Diode::new(Direction::Up));
pane.set_tile((1, 0), Wire::new(Orientation::Horizontal));
pane.set_tile((1, 2), Wire::new(Orientation::Horizontal));
pane.set_tile((0, 1), Wire::new(Orientation::Vertical));
pane.set_tile((2, 1), Wire::new(Orientation::Vertical));
pane.set_signal((0, 0), stackline::signal!(
(0, 0),
Direction::Right,
[]
));
b.iter(|| pane.step());
});
}
criterion_group!(benches, benchmark_step);
criterion_main!(benches);
Loading…
Cancel
Save