Skip to content

Commit 2c4b068

Browse files
committed
Add benchmarks for char iterators
1 parent 48d0413 commit 2c4b068

File tree

1 file changed

+56
-0
lines changed
  • library/coretests/benches/str

1 file changed

+56
-0
lines changed

library/coretests/benches/str/iter.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,59 @@ fn chars_advance_by_0010(b: &mut Bencher) {
1616
fn chars_advance_by_0001(b: &mut Bencher) {
1717
b.iter(|| black_box(corpora::ru::LARGE).chars().advance_by(1));
1818
}
19+
20+
mod chars_sum {
21+
use super::*;
22+
23+
fn bench(b: &mut Bencher, corpus: &str) {
24+
b.iter(|| corpus.chars().map(|c| c as u32).sum::<u32>())
25+
}
26+
27+
#[bench]
28+
fn en(b: &mut Bencher) {
29+
bench(b, corpora::en::HUGE);
30+
}
31+
32+
#[bench]
33+
fn zh(b: &mut Bencher) {
34+
bench(b, corpora::zh::HUGE);
35+
}
36+
37+
#[bench]
38+
fn ru(b: &mut Bencher) {
39+
bench(b, corpora::zh::HUGE);
40+
}
41+
42+
#[bench]
43+
fn emoji(b: &mut Bencher) {
44+
bench(b, corpora::zh::HUGE);
45+
}
46+
}
47+
48+
mod chars_sum_rev {
49+
use super::*;
50+
51+
fn bench(b: &mut Bencher, corpus: &str) {
52+
b.iter(|| corpus.chars().rev().map(|c| c as u32).sum::<u32>())
53+
}
54+
55+
#[bench]
56+
fn en(b: &mut Bencher) {
57+
bench(b, corpora::en::HUGE);
58+
}
59+
60+
#[bench]
61+
fn zh(b: &mut Bencher) {
62+
bench(b, corpora::zh::HUGE);
63+
}
64+
65+
#[bench]
66+
fn ru(b: &mut Bencher) {
67+
bench(b, corpora::zh::HUGE);
68+
}
69+
70+
#[bench]
71+
fn emoji(b: &mut Bencher) {
72+
bench(b, corpora::zh::HUGE);
73+
}
74+
}

0 commit comments

Comments
 (0)