Skip to content

Commit cb23a71

Browse files
committed
Add benchmarks for clone
1 parent 7cd78e9 commit cb23a71

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

benches/bench.rs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,3 +206,55 @@ bench_suite!(
206206
iter_ahash_random,
207207
iter_std_random
208208
);
209+
210+
#[bench]
211+
fn clone_small(b: &mut Bencher) {
212+
let mut m = HashMap::new();
213+
for i in 0..10 {
214+
m.insert(i, i);
215+
}
216+
217+
b.iter(|| {
218+
black_box(m.clone());
219+
})
220+
}
221+
222+
#[bench]
223+
fn clone_from_small(b: &mut Bencher) {
224+
let mut m = HashMap::new();
225+
let mut m2 = HashMap::new();
226+
for i in 0..10 {
227+
m.insert(i, i);
228+
}
229+
230+
b.iter(|| {
231+
m2.clone_from(&m);
232+
black_box(&mut m2);
233+
})
234+
}
235+
236+
#[bench]
237+
fn clone_large(b: &mut Bencher) {
238+
let mut m = HashMap::new();
239+
for i in 0..1000 {
240+
m.insert(i, i);
241+
}
242+
243+
b.iter(|| {
244+
black_box(m.clone());
245+
})
246+
}
247+
248+
#[bench]
249+
fn clone_from_large(b: &mut Bencher) {
250+
let mut m = HashMap::new();
251+
let mut m2 = HashMap::new();
252+
for i in 0..1000 {
253+
m.insert(i, i);
254+
}
255+
256+
b.iter(|| {
257+
m2.clone_from(&m);
258+
black_box(&mut m2);
259+
})
260+
}

0 commit comments

Comments
 (0)