diff options
Diffstat (limited to 'vendor/elasticlunr-rs/benches/bench.rs')
-rw-r--r-- | vendor/elasticlunr-rs/benches/bench.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/vendor/elasticlunr-rs/benches/bench.rs b/vendor/elasticlunr-rs/benches/bench.rs new file mode 100644 index 000000000..03fa05b42 --- /dev/null +++ b/vendor/elasticlunr-rs/benches/bench.rs @@ -0,0 +1,21 @@ +use criterion::{black_box, criterion_group, criterion_main, Criterion}; +use elasticlunr::Index; + +fn bench_main(c: &mut Criterion) { + // BTreeMap<String, IndexItem>: 3,165,389 ns/iter (+/- 420,869) + // BTreeMap<char, IndexItem>: 2,920,902 ns/iter (+/- 118,729) + c.bench_function("create_index", |b| { + let text = include_str!("../tests/data/en.in.txt"); + let sections: Vec<_> = text.split("\n\n").collect(); + b.iter(|| { + let mut index = Index::new(&["section"]); + for (i, section) in sections.iter().enumerate() { + index.add_doc(&format!("section_{}", i), &[section]); + } + black_box(index.to_json()); + }) + }); +} + +criterion_group!(benches, bench_main); +criterion_main!(benches); |