use criterion::{black_box, criterion_group, criterion_main, Criterion}; use elasticlunr::Index; fn bench_main(c: &mut Criterion) { // BTreeMap: 3,165,389 ns/iter (+/- 420,869) // BTreeMap: 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);