Skip to content

Commit c3b5542

Browse files
committed
Add logforth crate benchmark for comparison
1 parent b392cbc commit c3b5542

File tree

6 files changed

+120
-0
lines changed

6 files changed

+120
-0
lines changed

spdlog/Cargo.toml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ log = "=0.4.28"
8686
slog = "=2.7.0"
8787
sloggers = "=2.2.0"
8888
log4rs = "=1.4.0"
89+
logforth = { version = "=0.27.0", features = ["append-rolling-file", "append-single-file"]}
8990
fast_log = "=1.7.7"
9091
fern = "=0.7.1"
9192
flexi_logger = "=0.31.4"
@@ -168,6 +169,22 @@ path = "benches/ftlog/2_rotating_daily.rs"
168169
[[bench]]
169170
name = "ftlog_3_level_off"
170171
path = "benches/ftlog/3_level_off.rs"
172+
[[bench]]
173+
name = "logforth"
174+
path = "benches/logforth/main.rs"
175+
harness = false
176+
[[bench]]
177+
name = "logforth_1_file_async"
178+
path = "benches/logforth/1_file_async.rs"
179+
[[bench]]
180+
name = "logforth_2_rotating_file_size_async"
181+
path = "benches/logforth/2_rotating_file_size_async.rs"
182+
[[bench]]
183+
name = "logforth_3_rotating_daily_async"
184+
path = "benches/logforth/3_rotating_daily_async.rs"
185+
[[bench]]
186+
name = "logforth_4_level_off"
187+
path = "benches/logforth/4_level_off.rs"
171188

172189
[[example]]
173190
name = "06_log_crate"
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#![feature(test)]
2+
3+
extern crate test;
4+
5+
#[path = "../common/mod.rs"]
6+
mod common;
7+
8+
use log::{info, LevelFilter};
9+
use logforth::append::single_file::SingleFileBuilder;
10+
use test::Bencher;
11+
12+
unavailable_bench!(bench_1_file);
13+
14+
#[bench]
15+
fn bench_2_file_async(bencher: &mut Bencher) {
16+
let path = common::BENCH_LOGS_PATH.join("file_async.log");
17+
18+
let (single_writer, _guard) = SingleFileBuilder::new(path).build().unwrap();
19+
logforth::builder()
20+
.dispatch(|d| d.filter(LevelFilter::Info).append(single_writer))
21+
.apply();
22+
23+
bencher.iter(|| info!(bench_log_message!()))
24+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#![feature(test)]
2+
3+
extern crate test;
4+
5+
#[path = "../common/mod.rs"]
6+
mod common;
7+
8+
use log::{info, LevelFilter};
9+
use logforth::append::rolling_file::{RollingFileBuilder, Rotation};
10+
use test::Bencher;
11+
12+
#[bench]
13+
fn bench_3_rotating_file_size_async(bencher: &mut Bencher) {
14+
let (single_writer, _guard) = RollingFileBuilder::new(&*common::BENCH_LOGS_PATH)
15+
.rotation(Rotation::Never)
16+
.max_file_size(common::FILE_SIZE as usize)
17+
.filename_prefix("rotating_file_size_async")
18+
.build()
19+
.unwrap();
20+
logforth::builder()
21+
.dispatch(|d| d.filter(LevelFilter::Info).append(single_writer))
22+
.apply();
23+
24+
bencher.iter(|| info!(bench_log_message!()))
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#![feature(test)]
2+
3+
extern crate test;
4+
5+
#[path = "../common/mod.rs"]
6+
mod common;
7+
8+
use log::{info, LevelFilter};
9+
use logforth::append::rolling_file::{RollingFileBuilder, Rotation};
10+
use test::Bencher;
11+
12+
#[bench]
13+
fn bench_4_rotating_daily_async(bencher: &mut Bencher) {
14+
let (single_writer, _guard) = RollingFileBuilder::new(&*common::BENCH_LOGS_PATH)
15+
.rotation(Rotation::Daily)
16+
.filename_prefix("rotating_daily_async")
17+
.build()
18+
.unwrap();
19+
logforth::builder()
20+
.dispatch(|d| d.filter(LevelFilter::Info).append(single_writer))
21+
.apply();
22+
23+
bencher.iter(|| info!(bench_log_message!()))
24+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#![feature(test)]
2+
3+
extern crate test;
4+
5+
#[path = "../common/mod.rs"]
6+
mod common;
7+
8+
use log::{info, LevelFilter};
9+
use logforth::append::single_file::SingleFileBuilder;
10+
use test::Bencher;
11+
12+
#[bench]
13+
fn bench_5_level_off(bencher: &mut Bencher) {
14+
let path = common::BENCH_LOGS_PATH.join("level_off.log");
15+
16+
let (single_writer, _guard) = SingleFileBuilder::new(path).build().unwrap();
17+
logforth::builder()
18+
.dispatch(|d| d.filter(LevelFilter::Off).append(single_writer))
19+
.apply();
20+
21+
bencher.iter(|| info!(bench_log_message!()))
22+
}

spdlog/benches/logforth/main.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#![feature(test)]
2+
3+
extern crate test;
4+
5+
#[path = "../common/mod.rs"]
6+
mod common;
7+
8+
aggregate_bench_main!();

0 commit comments

Comments
 (0)