Skip to content

Commit 9d1baaf

Browse files
Rollup merge of rust-lang#67281 - llogiq:nonoverlapping-insert, r=alexcrichton
add string.insert benchmarks This adds benchmarks for `String::insert` and `String::insert_str`
2 parents 939beb5 + c6321a4 commit 9d1baaf

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

src/liballoc/benches/string.rs

+40
Original file line numberDiff line numberDiff line change
@@ -122,3 +122,43 @@ fn bench_to_string(b: &mut Bencher) {
122122
Lorem ipsum dolor sit amet, consectetur. ";
123123
b.iter(|| s.to_string())
124124
}
125+
126+
#[bench]
127+
fn bench_insert_char_short(b: &mut Bencher) {
128+
let s = "Hello, World!";
129+
b.iter(|| {
130+
let mut x = String::from(s);
131+
black_box(&mut x).insert(6, black_box(' '));
132+
x
133+
})
134+
}
135+
136+
#[bench]
137+
fn bench_insert_char_long(b: &mut Bencher) {
138+
let s = "Hello, World!";
139+
b.iter(|| {
140+
let mut x = String::from(s);
141+
black_box(&mut x).insert(6, black_box('❤'));
142+
x
143+
})
144+
}
145+
146+
#[bench]
147+
fn bench_insert_str_short(b: &mut Bencher) {
148+
let s = "Hello, World!";
149+
b.iter(|| {
150+
let mut x = String::from(s);
151+
black_box(&mut x).insert_str(6, black_box(" "));
152+
x
153+
})
154+
}
155+
156+
#[bench]
157+
fn bench_insert_str_long(b: &mut Bencher) {
158+
let s = "Hello, World!";
159+
b.iter(|| {
160+
let mut x = String::from(s);
161+
black_box(&mut x).insert_str(6, black_box(" rustic "));
162+
x
163+
})
164+
}

0 commit comments

Comments
 (0)