File tree 1 file changed +24
-0
lines changed
src/liballoc/benches/btree
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) {
62
62
b. iter ( || src. clone ( ) . clear ( ) )
63
63
}
64
64
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
+
65
77
#[ bench]
66
78
pub fn clone_100_and_into_iter ( b : & mut Bencher ) {
67
79
let src = pos ( 100 ) ;
@@ -115,6 +127,18 @@ pub fn clone_10k_and_clear(b: &mut Bencher) {
115
127
b. iter ( || src. clone ( ) . clear ( ) )
116
128
}
117
129
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
+
118
142
#[ bench]
119
143
pub fn clone_10k_and_into_iter ( b : & mut Bencher ) {
120
144
let src = pos ( 10_000 ) ;
You can’t perform that action at this time.
0 commit comments