Files
ColdBreeze-chat-server-rust/crates/msgdb/benches/db.rs
T
2023-03-03 12:03:14 -05:00

44 lines
1.1 KiB
Rust

use criterion::{criterion_group, criterion_main, Criterion};
use rc_msgdb::MsgDb;
use tempfile::tempdir;
fn send_benchmark(c: &mut Criterion) {
let dir = tempdir().unwrap();
let db = MsgDb::open(dir.path()).unwrap();
let to = (0..50000i64).collect::<Vec<_>>();
let msg = b"hello!";
c.bench_function("send", |b| {
b.iter(|| {
db.messages()
.send_to_group(1, to.iter().copied(), msg)
.unwrap();
})
});
}
fn fetch_benchmark(c: &mut Criterion) {
let dir = tempdir().unwrap();
let db = MsgDb::open(dir.path()).unwrap();
let to = vec![1];
let msg = b"hello!";
for _ in 0..1000 {
db.messages()
.send_to_group(1, to.iter().copied(), msg)
.unwrap();
}
c.bench_function("fetch", |b| {
b.iter(|| {
assert_eq!(
db.messages()
.fetch_user_messages_after(1, None, 10000)
.unwrap()
.len(),
1000
);
})
});
}
criterion_group!(benches, send_benchmark, fetch_benchmark);
criterion_main!(benches);