File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff 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+ }
You can’t perform that action at this time.
0 commit comments