Skip to content

Commit 7704a39

Browse files
committed
fmt benchmarks for binary, octal and hex
1 parent c6ac515 commit 7704a39

File tree

1 file changed

+180
-0
lines changed
  • library/coretests/benches

1 file changed

+180
-0
lines changed

library/coretests/benches/fmt.rs

Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,3 +162,183 @@ fn write_u8_min(bh: &mut Bencher) {
162162
black_box(format!("{}", black_box(u8::MIN)));
163163
});
164164
}
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

Comments
 (0)