From f08648e4b5a9f7855a2ed9068a386e2f3c596322 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Tue, 16 Dec 2025 10:40:44 +0100 Subject: Initial implementation --- benches/rendering.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 benches/rendering.rs (limited to 'benches/rendering.rs') diff --git a/benches/rendering.rs b/benches/rendering.rs new file mode 100644 index 0000000..549ad21 --- /dev/null +++ b/benches/rendering.rs @@ -0,0 +1,25 @@ +use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use std::fs; +use wmap_renderer::{render_to_png, Configuration, StageType}; + +fn benchmark_rendering(c: &mut Criterion) { + // Read the huge.wmap file for realistic benchmarking + let source = fs::read_to_string("benches/huge.wmap").expect("Failed to read benches/huge.wmap"); + let map = wmap_parser::parse(&source); + let config = Configuration::default(); + + c.bench_function("render huge map", |b| { + b.iter(|| render_to_png(black_box(&map), StageType::default(), &config)) + }); + + // Also benchmark a simple map + let simple_source = "Tea (90, 50)\nCup (80, 40)\nTea -> Cup"; + let simple_map = wmap_parser::parse(simple_source); + + c.bench_function("render simple map", |b| { + b.iter(|| render_to_png(black_box(&simple_map), StageType::default(), &config)) + }); +} + +criterion_group!(benches, benchmark_rendering); +criterion_main!(benches); -- cgit