Skip to content

Commit 29d4af9

Browse files
committed
Add benchmark for KV
1 parent 8902a4c commit 29d4af9

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

spdlog/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ name = "spdlog_rs_pattern"
112112
path = "benches/spdlog-rs/pattern.rs"
113113
required-features = ["runtime-pattern", "serde_json"]
114114
[[bench]]
115+
name = "spdlog_rs_kv"
116+
path = "benches/spdlog-rs/kv.rs"
117+
[[bench]]
115118
name = "fast_log"
116119
path = "benches/fast_log/main.rs"
117120
harness = false

spdlog/benches/spdlog-rs/kv.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#![feature(test)]
2+
3+
extern crate test;
4+
5+
#[path = "../common/mod.rs"]
6+
mod common;
7+
8+
use std::sync::Arc;
9+
10+
use spdlog::{prelude::*, sink::*};
11+
use test::Bencher;
12+
13+
include!(concat!(
14+
env!("OUT_DIR"),
15+
"/test_utils/common_for_integration_test.rs"
16+
));
17+
use test_utils::*;
18+
19+
fn logger(name: &str) -> Logger {
20+
let path = common::BENCH_LOGS_PATH.join(format!("kv_{name}.log"));
21+
let sink = Arc::new(
22+
FileSink::builder()
23+
.path(path)
24+
.truncate(true)
25+
.build()
26+
.unwrap(),
27+
);
28+
build_test_logger(|b| b.sink(sink))
29+
}
30+
31+
#[bench]
32+
fn bench_kv_str(bencher: &mut Bencher) {
33+
let logger = logger("str");
34+
bencher.iter(
35+
|| info!(logger: logger, bench_log_message!(), kv: { k1 = "v1", k2 = "v2", k3 = "v3" }),
36+
)
37+
}
38+
39+
#[bench]
40+
fn bench_kv_mixed(bencher: &mut Bencher) {
41+
let logger = logger("mixed");
42+
let v = vec![1];
43+
bencher.iter(|| info!(logger: logger, bench_log_message!(), kv: { k1 = 1, k2: = 1.0, v:? }))
44+
}
45+
46+
#[bench]
47+
fn bench_kv_many(bencher: &mut Bencher) {
48+
let logger = logger("12_kv");
49+
bencher.iter(|| {
50+
info!(logger: logger, bench_log_message!(), kv: {
51+
k1 = "v1", k2 = "v2", k3 = "v3", k4 = "v4",
52+
k5 = "v5", k6 = "v6", k7 = "v7", k8 = "v8",
53+
k9 = "v9", k10 = "v10", k11 = "v11", k12 = "v12",
54+
})
55+
})
56+
}

0 commit comments

Comments
 (0)