summaryrefslogtreecommitdiffstats
path: root/vendor/elasticlunr-rs/benches/bench.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/elasticlunr-rs/benches/bench.rs')
-rw-r--r--vendor/elasticlunr-rs/benches/bench.rs21
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);