@@ -130,3 +130,99 @@ fn bench_macro_from_list(b: &mut Bencher) {
130
130
vec
131
131
} ) ;
132
132
}
133
+ #[ bench]
134
+ fn bench_push_vec ( b : & mut Bencher ) {
135
+ #[ inline( never) ]
136
+ fn push_noinline ( vec : & mut Vec < u64 > , x : u64 ) {
137
+ vec. push ( x)
138
+ }
139
+
140
+ b. iter ( || {
141
+ let mut vec: Vec < u64 > = Vec :: with_capacity ( 16 ) ;
142
+ for x in 0 ..100 {
143
+ push_noinline ( & mut vec, x) ;
144
+ }
145
+ vec
146
+ } ) ;
147
+ }
148
+
149
+ #[ bench]
150
+ fn bench_insert_vec ( b : & mut Bencher ) {
151
+ #[ inline( never) ]
152
+ fn insert_noinline ( vec : & mut Vec < u64 > , x : u64 ) {
153
+ vec. insert ( 0 , x)
154
+ }
155
+
156
+ b. iter ( || {
157
+ let mut vec: Vec < u64 > = Vec :: with_capacity ( 16 ) ;
158
+ for x in 0 ..100 {
159
+ insert_noinline ( & mut vec, x) ;
160
+ }
161
+ vec
162
+ } ) ;
163
+ }
164
+
165
+ #[ bench]
166
+ fn bench_extend_vec ( b : & mut Bencher ) {
167
+ b. iter ( || {
168
+ let mut vec: Vec < u64 > = Vec :: with_capacity ( 16 ) ;
169
+ vec. extend ( 0 ..100 ) ;
170
+ vec
171
+ } ) ;
172
+ }
173
+
174
+ #[ bench]
175
+ fn bench_from_slice_vec ( b : & mut Bencher ) {
176
+ let v: Vec < u64 > = ( 0 ..100 ) . collect ( ) ;
177
+ b. iter ( || {
178
+ let vec: Vec < u64 > = Vec :: from ( & v[ ..] ) ;
179
+ vec
180
+ } ) ;
181
+ }
182
+
183
+ #[ bench]
184
+ fn bench_extend_from_slice_vec ( b : & mut Bencher ) {
185
+ let v: Vec < u64 > = ( 0 ..100 ) . collect ( ) ;
186
+ b. iter ( || {
187
+ let mut vec: Vec < u64 > = Vec :: with_capacity ( 16 ) ;
188
+ vec. extend_from_slice ( & v) ;
189
+ vec
190
+ } ) ;
191
+ }
192
+
193
+ #[ bench]
194
+ fn bench_pushpop_vec ( b : & mut Bencher ) {
195
+ #[ inline( never) ]
196
+ fn pushpop_noinline ( vec : & mut Vec < u64 > , x : u64 ) {
197
+ vec. push ( x) ;
198
+ vec. pop ( ) ;
199
+ }
200
+
201
+ b. iter ( || {
202
+ let mut vec: Vec < u64 > = Vec :: with_capacity ( 16 ) ;
203
+ for x in 0 ..100 {
204
+ pushpop_noinline ( & mut vec, x) ;
205
+ }
206
+ vec
207
+ } ) ;
208
+ }
209
+
210
+ #[ bench]
211
+ fn bench_macro_from_elem_vec ( b : & mut Bencher ) {
212
+ b. iter ( || {
213
+ let vec: Vec < u64 > = vec ! [ 42 ; 100 ] ;
214
+ vec
215
+ } ) ;
216
+ }
217
+
218
+ #[ bench]
219
+ fn bench_macro_from_list_vec ( b : & mut Bencher ) {
220
+ b. iter ( || {
221
+ let vec: Vec < u64 > = vec ! [
222
+ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 20 , 24 , 32 , 36 , 0x40 , 0x80 ,
223
+ 0x100 , 0x200 , 0x400 , 0x800 , 0x1000 , 0x2000 , 0x4000 , 0x8000 , 0x10000 , 0x20000 , 0x40000 ,
224
+ 0x80000 , 0x100000
225
+ ] ;
226
+ vec
227
+ } ) ;
228
+ }
0 commit comments