mirror of
https://github.com/chatmail/core.git
synced 2026-05-19 06:46:32 +03:00
Benchmark adding 500 contacts from address book
This commit is contained in:
@@ -103,6 +103,10 @@ required-features = ["repl"]
|
|||||||
name = "create_account"
|
name = "create_account"
|
||||||
harness = false
|
harness = false
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "contacts"
|
||||||
|
harness = false
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = []
|
default = []
|
||||||
internals = []
|
internals = []
|
||||||
|
|||||||
30
benches/contacts.rs
Normal file
30
benches/contacts.rs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
use async_std::task::block_on;
|
||||||
|
use criterion::{black_box, criterion_group, criterion_main, Criterion};
|
||||||
|
use deltachat::contact::Contact;
|
||||||
|
use deltachat::context::Context;
|
||||||
|
use tempfile::tempdir;
|
||||||
|
|
||||||
|
async fn address_book_benchmark(n: u32) {
|
||||||
|
let dir = tempdir().unwrap();
|
||||||
|
let dbfile = dir.path().join("db.sqlite");
|
||||||
|
let id = 100;
|
||||||
|
let context = Context::new("FakeOS".into(), dbfile.into(), id)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let book = (0..n)
|
||||||
|
.map(|i| format!("Name {}\naddr{}@example.org\n", i, i))
|
||||||
|
.collect::<Vec<String>>()
|
||||||
|
.join("");
|
||||||
|
|
||||||
|
Contact::add_address_book(&context, book).await.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn criterion_benchmark(c: &mut Criterion) {
|
||||||
|
c.bench_function("create 500 contacts", |b| {
|
||||||
|
b.iter(|| block_on(async { address_book_benchmark(black_box(500)).await }))
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
criterion_group!(benches, criterion_benchmark);
|
||||||
|
criterion_main!(benches);
|
||||||
Reference in New Issue
Block a user