| #![feature(test)] |
| |
| extern crate dtoa; |
| extern crate test; |
| |
| macro_rules! benches { |
| ($($name:ident($value:expr),)*) => { |
| mod bench_dtoa { |
| use test::{Bencher, black_box}; |
| $( |
| #[bench] |
| fn $name(b: &mut Bencher) { |
| use dtoa; |
| |
| let mut buf = Vec::with_capacity(20); |
| |
| b.iter(|| { |
| buf.clear(); |
| dtoa::write(&mut buf, black_box($value)).unwrap() |
| }); |
| } |
| )* |
| } |
| |
| mod bench_fmt { |
| use test::{Bencher, black_box}; |
| $( |
| #[bench] |
| fn $name(b: &mut Bencher) { |
| use std::io::Write; |
| |
| let mut buf = Vec::with_capacity(20); |
| |
| b.iter(|| { |
| buf.clear(); |
| write!(&mut buf, "{}", black_box($value)).unwrap() |
| }); |
| } |
| )* |
| } |
| } |
| } |
| |
| benches!( |
| bench_0_f64(0f64), |
| bench_short_f64(0.1234f64), |
| bench_e_f64(2.718281828459045f64), |
| bench_max_f64(::std::f64::MAX), |
| |
| bench_0_f32(0f32), |
| bench_short_f32(0.1234f32), |
| bench_e_f32(2.718281828459045f32), |
| bench_max_f32(::std::f32::MAX), |
| ); |