This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed
src/liballoc/benches/btree Expand file tree Collapse file tree 1 file changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -62,6 +62,18 @@ pub fn clone_100_and_clear(b: &mut Bencher) {
6262 b. iter ( || src. clone ( ) . clear ( ) )
6363}
6464
65+ #[ bench]
66+ pub fn clone_100_and_drain_half ( b : & mut Bencher ) {
67+ let src = pos ( 100 ) ;
68+ b. iter ( || {
69+ let mut set = src. clone ( ) ;
70+ for i in set. iter ( ) . copied ( ) . filter ( |i| i % 2 == 0 ) . collect :: < Vec < _ > > ( ) {
71+ set. remove ( & i) ;
72+ }
73+ assert_eq ! ( set. len( ) , 100 / 2 ) ;
74+ } )
75+ }
76+
6577#[ bench]
6678pub fn clone_100_and_into_iter ( b : & mut Bencher ) {
6779 let src = pos ( 100 ) ;
@@ -115,6 +127,18 @@ pub fn clone_10k_and_clear(b: &mut Bencher) {
115127 b. iter ( || src. clone ( ) . clear ( ) )
116128}
117129
130+ #[ bench]
131+ pub fn clone_10k_and_drain_half ( b : & mut Bencher ) {
132+ let src = pos ( 10_000 ) ;
133+ b. iter ( || {
134+ let mut set = src. clone ( ) ;
135+ for i in set. iter ( ) . copied ( ) . filter ( |i| i % 2 == 0 ) . collect :: < Vec < _ > > ( ) {
136+ set. remove ( & i) ;
137+ }
138+ assert_eq ! ( set. len( ) , 10_000 / 2 ) ;
139+ } )
140+ }
141+
118142#[ bench]
119143pub fn clone_10k_and_into_iter ( b : & mut Bencher ) {
120144 let src = pos ( 10_000 ) ;
You can’t perform that action at this time.
0 commit comments