@@ -162,3 +162,183 @@ fn write_u8_min(bh: &mut Bencher) {
162
162
black_box ( format ! ( "{}" , black_box( u8 :: MIN ) ) ) ;
163
163
} ) ;
164
164
}
165
+
166
+ #[ bench]
167
+ fn write_i8_bin ( bh : & mut Bencher ) {
168
+ let mut buf = String :: with_capacity ( 256 ) ;
169
+ bh. iter ( || {
170
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 0_i8 ) ) . unwrap ( ) ;
171
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 100_i8 ) ) . unwrap ( ) ;
172
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( -100_i8 ) ) . unwrap ( ) ;
173
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 1_i8 << 4 ) ) . unwrap ( ) ;
174
+ black_box ( & mut buf) . clear ( ) ;
175
+ } ) ;
176
+ }
177
+
178
+ #[ bench]
179
+ fn write_i16_bin ( bh : & mut Bencher ) {
180
+ let mut buf = String :: with_capacity ( 256 ) ;
181
+ bh. iter ( || {
182
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 0_i16 ) ) . unwrap ( ) ;
183
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 100_i16 ) ) . unwrap ( ) ;
184
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( -100_i16 ) ) . unwrap ( ) ;
185
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 1_i16 << 8 ) ) . unwrap ( ) ;
186
+ black_box ( & mut buf) . clear ( ) ;
187
+ } ) ;
188
+ }
189
+
190
+ #[ bench]
191
+ fn write_i32_bin ( bh : & mut Bencher ) {
192
+ let mut buf = String :: with_capacity ( 256 ) ;
193
+ bh. iter ( || {
194
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 0_i32 ) ) . unwrap ( ) ;
195
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 100_i32 ) ) . unwrap ( ) ;
196
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( -100_i32 ) ) . unwrap ( ) ;
197
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 1_i32 << 16 ) ) . unwrap ( ) ;
198
+ black_box ( & mut buf) . clear ( ) ;
199
+ } ) ;
200
+ }
201
+
202
+ #[ bench]
203
+ fn write_i64_bin ( bh : & mut Bencher ) {
204
+ let mut buf = String :: with_capacity ( 256 ) ;
205
+ bh. iter ( || {
206
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 0_i64 ) ) . unwrap ( ) ;
207
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 100_i64 ) ) . unwrap ( ) ;
208
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( -100_i64 ) ) . unwrap ( ) ;
209
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 1_i64 << 32 ) ) . unwrap ( ) ;
210
+ black_box ( & mut buf) . clear ( ) ;
211
+ } ) ;
212
+ }
213
+
214
+ #[ bench]
215
+ fn write_i128_bin ( bh : & mut Bencher ) {
216
+ let mut buf = String :: with_capacity ( 256 ) ;
217
+ bh. iter ( || {
218
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 0_i128 ) ) . unwrap ( ) ;
219
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 100_i128 ) ) . unwrap ( ) ;
220
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( -100_i128 ) ) . unwrap ( ) ;
221
+ write ! ( black_box( & mut buf) , "{:b}" , black_box( 1_i128 << 64 ) ) . unwrap ( ) ;
222
+ black_box ( & mut buf) . clear ( ) ;
223
+ } ) ;
224
+ }
225
+
226
+ #[ bench]
227
+ fn write_i8_oct ( bh : & mut Bencher ) {
228
+ let mut buf = String :: with_capacity ( 256 ) ;
229
+ bh. iter ( || {
230
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 0_i8 ) ) . unwrap ( ) ;
231
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 100_i8 ) ) . unwrap ( ) ;
232
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( -100_i8 ) ) . unwrap ( ) ;
233
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 1_i8 << 4 ) ) . unwrap ( ) ;
234
+ black_box ( & mut buf) . clear ( ) ;
235
+ } ) ;
236
+ }
237
+
238
+ #[ bench]
239
+ fn write_i16_oct ( bh : & mut Bencher ) {
240
+ let mut buf = String :: with_capacity ( 256 ) ;
241
+ bh. iter ( || {
242
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 0_i16 ) ) . unwrap ( ) ;
243
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 100_i16 ) ) . unwrap ( ) ;
244
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( -100_i16 ) ) . unwrap ( ) ;
245
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 1_i16 << 8 ) ) . unwrap ( ) ;
246
+ black_box ( & mut buf) . clear ( ) ;
247
+ } ) ;
248
+ }
249
+
250
+ #[ bench]
251
+ fn write_i32_oct ( bh : & mut Bencher ) {
252
+ let mut buf = String :: with_capacity ( 256 ) ;
253
+ bh. iter ( || {
254
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 0_i32 ) ) . unwrap ( ) ;
255
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 100_i32 ) ) . unwrap ( ) ;
256
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( -100_i32 ) ) . unwrap ( ) ;
257
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 1_i32 << 16 ) ) . unwrap ( ) ;
258
+ black_box ( & mut buf) . clear ( ) ;
259
+ } ) ;
260
+ }
261
+
262
+ #[ bench]
263
+ fn write_i64_oct ( bh : & mut Bencher ) {
264
+ let mut buf = String :: with_capacity ( 256 ) ;
265
+ bh. iter ( || {
266
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 0_i64 ) ) . unwrap ( ) ;
267
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 100_i64 ) ) . unwrap ( ) ;
268
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( -100_i64 ) ) . unwrap ( ) ;
269
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 1_i64 << 32 ) ) . unwrap ( ) ;
270
+ black_box ( & mut buf) . clear ( ) ;
271
+ } ) ;
272
+ }
273
+
274
+ #[ bench]
275
+ fn write_i128_oct ( bh : & mut Bencher ) {
276
+ let mut buf = String :: with_capacity ( 256 ) ;
277
+ bh. iter ( || {
278
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 0_i128 ) ) . unwrap ( ) ;
279
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 100_i128 ) ) . unwrap ( ) ;
280
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( -100_i128 ) ) . unwrap ( ) ;
281
+ write ! ( black_box( & mut buf) , "{:o}" , black_box( 1_i128 << 64 ) ) . unwrap ( ) ;
282
+ black_box ( & mut buf) . clear ( ) ;
283
+ } ) ;
284
+ }
285
+
286
+ #[ bench]
287
+ fn write_i8_hex ( bh : & mut Bencher ) {
288
+ let mut buf = String :: with_capacity ( 256 ) ;
289
+ bh. iter ( || {
290
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 0_i8 ) ) . unwrap ( ) ;
291
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 100_i8 ) ) . unwrap ( ) ;
292
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( -100_i8 ) ) . unwrap ( ) ;
293
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 1_i8 << 4 ) ) . unwrap ( ) ;
294
+ black_box ( & mut buf) . clear ( ) ;
295
+ } ) ;
296
+ }
297
+
298
+ #[ bench]
299
+ fn write_i16_hex ( bh : & mut Bencher ) {
300
+ let mut buf = String :: with_capacity ( 256 ) ;
301
+ bh. iter ( || {
302
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 0_i16 ) ) . unwrap ( ) ;
303
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 100_i16 ) ) . unwrap ( ) ;
304
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( -100_i16 ) ) . unwrap ( ) ;
305
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 1_i16 << 8 ) ) . unwrap ( ) ;
306
+ black_box ( & mut buf) . clear ( ) ;
307
+ } ) ;
308
+ }
309
+
310
+ #[ bench]
311
+ fn write_i32_hex ( bh : & mut Bencher ) {
312
+ let mut buf = String :: with_capacity ( 256 ) ;
313
+ bh. iter ( || {
314
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 0_i32 ) ) . unwrap ( ) ;
315
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 100_i32 ) ) . unwrap ( ) ;
316
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( -100_i32 ) ) . unwrap ( ) ;
317
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 1_i32 << 16 ) ) . unwrap ( ) ;
318
+ black_box ( & mut buf) . clear ( ) ;
319
+ } ) ;
320
+ }
321
+
322
+ #[ bench]
323
+ fn write_i64_hex ( bh : & mut Bencher ) {
324
+ let mut buf = String :: with_capacity ( 256 ) ;
325
+ bh. iter ( || {
326
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 0_i64 ) ) . unwrap ( ) ;
327
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 100_i64 ) ) . unwrap ( ) ;
328
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( -100_i64 ) ) . unwrap ( ) ;
329
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 1_i64 << 32 ) ) . unwrap ( ) ;
330
+ black_box ( & mut buf) . clear ( ) ;
331
+ } ) ;
332
+ }
333
+
334
+ #[ bench]
335
+ fn write_i128_hex ( bh : & mut Bencher ) {
336
+ let mut buf = String :: with_capacity ( 256 ) ;
337
+ bh. iter ( || {
338
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 0_i128 ) ) . unwrap ( ) ;
339
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 100_i128 ) ) . unwrap ( ) ;
340
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( -100_i128 ) ) . unwrap ( ) ;
341
+ write ! ( black_box( & mut buf) , "{:x}" , black_box( 1_i128 << 64 ) ) . unwrap ( ) ;
342
+ black_box ( & mut buf) . clear ( ) ;
343
+ } ) ;
344
+ }
0 commit comments