8000 Replace bencher with criterion · denizdogan/unicode-segmentation@a08c4e5 · GitHub
[go: up one dir, main page]

Skip to content

Commit a08c4e5

Browse files
committed
Replace bencher with criterion
Enable performance improvements to be tracked over time more easily.
1 parent 573b7bb commit a08c4e5

File tree

2 files changed

+30
-31
lines changed

2 files changed

+30
-31
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ no_std = [] # This is a no-op, preserved for backward compatibility only.
2424

2525
[dev-dependencies]
2626
quickcheck = "0.7"
27-
bencher = "0.1"
27+
criterion = "0.3"
2828

2929
[[bench]]
3030
name = "graphemes"

benches/graphemes.rs

Lines changed: 29 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,54 @@
1-
#[macro_use]
2-
extern crate bencher;
3-
extern crate unicode_segmentation;
1+
use criterion::{black_box, criterion_group, criterion_main, Criterion};
2+
use unicode_segmentation;
43

5-
use bencher::Bencher;
6-
use unicode_segmentation::UnicodeSegmentation;
74
use std::fs;
5+
use unicode_segmentation::UnicodeSegmentation;
86

9-
fn graphemes(bench: &mut Bencher, path: &str) {
7+
fn graphemes(c: &mut Criterion, lang: &str, path: &str) {
108
let text = fs::read_to_string(path).unwrap();
11-
bench.iter(|| {
12-
for g in UnicodeSegmentation::graphemes(&*text, true) {
13-
bencher::black_box(g);
14-
}
15-
});
169

17-
bench.bytes = text.len() as u64;
10+
c.bench_function(&format!("grapheme {}",lang), |bench| {
11+
bench.iter(|| {
12+
for g in UnicodeSegmentation::graphemes(black_box(&*text), true) {
13+
black_box(g);
14+
}
15+
})
16+
});
1817
}
1918

20-
fn graphemes_arabic(bench: &mut Bencher) {
21-
graphemes(bench, "benches/texts/arabic.txt");
19+
fn graphemes_arabic(c: &mut Criterion) {
20+
graphemes(c, "arabic" ,"benches/texts/arabic.txt");
2221
}
2322

24-
fn graphemes_english(bench: &mut Bencher) {
25-
graphemes(bench, "benches/texts/english.txt");
23+
fn graphemes_english(c: &mut Criterion) {
24+
graphemes(c, "english" ,"benches/texts/english.txt");
2625
}
2726

28-
fn graphemes_hindi(bench: &mut Bencher) {
29-
graphemes(bench, "benches/texts/hindi.txt");
27+
fn graphemes_hindi(c: &mut Criterion) {
28+
graphemes(c, "hindi" ,"benches/texts/hindi.txt");
3029
}
3130

32-
fn graphemes_japanese(bench: &mut Bencher) {
33-
graphemes(bench, "benches/texts/japanese.txt");
31+
fn graphemes_japanese(c: &mut Criterion) {
32+
graphemes(c, "japanese" ,"benches/texts/japanese.txt");
3433
}
3534

36-
fn graphemes_korean(bench: &mut Bencher) {
37-
graphemes(bench, "benches/texts/korean.txt");
35+
fn graphemes_korean(c: &mut Criterion) {
36+
graphemes(c, "korean" ,"benches/texts/korean.txt");
3837
}
3938

40-
fn graphemes_mandarin(bench: &mut Bencher) {
41-
graphemes(bench, "benches/texts/mandarin.txt");
39+
fn graphemes_mandarin(c: &mut Criterion) {
40+
graphemes(c, "mandarin" ,"benches/texts/mandarin.txt");
4241
}
4342

44-
fn graphemes_russian(bench: &mut Bencher) {
45-
graphemes(bench, "benches/texts/russian.txt");
43+
fn graphemes_russian(c: &mut Criterion) {
44+
graphemes(c, "russian" ,"benches/texts/russian.txt");
4645
}
4746

48-
fn graphemes_source_code(bench: &mut Bencher) {
49-
graphemes(bench, "benches/texts/source_code.txt");
47+
fn graphemes_source_code(c: &mut Criterion) {
48+
graphemes(c, "source_code","benches/texts/source_code.txt");
5049
}
5150

52-
benchmark_group!(
51+
criterion_group!(
5352
benches,
5453
graphemes_arabic,
5554
graphemes_english,
@@ -61,4 +60,4 @@ benchmark_group!(
6160
graphemes_source_code,
6261
);
6362

64-
benchmark_main!(benches);
63+
criterion_main!(benches);

0 commit comments

Comments
 (0)
0