mirror of
https://github.com/chatmail/core.git
synced 2026-05-08 09:26:29 +03:00
Add search_msgs benchmark
This commit is contained in:
@@ -107,6 +107,10 @@ harness = false
|
|||||||
name = "contacts"
|
name = "contacts"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "search_msgs"
|
||||||
|
harness = false
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
internals = []
|
internals = []
|
||||||
|
|||||||
29
benches/search_msgs.rs
Normal file
29
benches/search_msgs.rs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
use async_std::task::block_on;
|
||||||
|
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||||
|
use deltachat::context::Context;
|
||||||
|
use std::path::Path;
|
||||||
|
|
||||||
|
async fn search_benchmark(path: impl AsRef<Path>) {
|
||||||
|
let dbfile = path.as_ref();
|
||||||
|
let id = 100;
|
||||||
|
let context = Context::new("FakeOS".into(), dbfile.into(), id)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
for _ in 0..10u32 {
|
||||||
|
context.search_msgs(None, "hello").await.unwrap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn criterion_benchmark(c: &mut Criterion) {
|
||||||
|
// To enable this benchmark, set `DELTACHAT_BENCHMARK_DATABASE` to some large database with many
|
||||||
|
// messages, such as your primary account.
|
||||||
|
if let Ok(path) = std::env::var("DELTACHAT_BENCHMARK_DATABASE") {
|
||||||
|
c.bench_function("search hello", |b| {
|
||||||
|
b.iter(|| block_on(async { search_benchmark(black_box(&path)).await }))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
criterion_group!(benches, criterion_benchmark);
|
||||||
|
criterion_main!(benches);
|
||||||
Reference in New Issue
Block a user