1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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);
|