Skip to content

Commit

Permalink
set up criterion
Browse files Browse the repository at this point in the history
  • Loading branch information
randomairborne committed Feb 2, 2025
1 parent 33c9da0 commit f253f68
Show file tree
Hide file tree
Showing 5 changed files with 204 additions and 0 deletions.
160 changes: 160 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions simpleinterpolation/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,14 @@ readme = "README.md"
license = "MIT OR Apache-2.0"

[dependencies]

[dev-dependencies]
criterion = { version = "0.3", features = ["html_reports"] }

[[bench]]
name = "no_interpolation"
harness = false

[[bench]]
name = "all_interpolation"
harness = false
17 changes: 17 additions & 0 deletions simpleinterpolation/benches/all_interpolation.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
use std::collections::HashMap;

use criterion::{criterion_group, criterion_main, Criterion};
use simpleinterpolation::Interpolation;

pub fn criterion_benchmark(c: &mut Criterion) {
let interp = Interpolation::new("{interp}").unwrap();
let mut data = HashMap::new();
data.insert(
"interp".into(),
include_str!("very_long_uninterpolated.txt").into(),
);
c.bench_function("no interpolation", |b| b.iter(|| interp.render(&data)));
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);
15 changes: 15 additions & 0 deletions simpleinterpolation/benches/no_interpolation.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
use std::collections::HashMap;

use criterion::{criterion_group, criterion_main, Criterion};
use simpleinterpolation::Interpolation;

pub fn criterion_benchmark(c: &mut Criterion) {
let interp = Interpolation::new(include_str!("very_long_uninterpolated.txt")).unwrap();
let empty_hashmap = HashMap::new();
c.bench_function("no interpolation", |b| {
b.iter(|| interp.render(&empty_hashmap))
});
}

criterion_group!(benches, criterion_benchmark);
criterion_main!(benches);
1 change: 1 addition & 0 deletions simpleinterpolation/benches/very_long_uninterpolated.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
this is a very long test string, but it doesn't do any interpolation by default. We don't do interpolation here because we want to see how it performs in odd cases like this one, or ones where we're only interpolating a tiny bit of text, like for example a user's name.

0 comments on commit f253f68

Please sign in to comment.