| #![feature(test)] |
| |
| extern crate test; |
| extern crate rustc_serialize; |
| |
| use rustc_serialize::base64::{FromBase64, ToBase64, STANDARD}; |
| use test::Bencher; |
| |
| #[bench] |
| fn bench_to_base64(b: &mut Bencher) { |
| let s = "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \ |
| ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン"; |
| b.iter(|| { |
| s.as_bytes().to_base64(STANDARD); |
| }); |
| b.bytes = s.len() as u64; |
| } |
| |
| #[bench] |
| fn bench_from_base64(b: &mut Bencher) { |
| let s = "イロハニホヘト チリヌルヲ ワカヨタレソ ツネナラム \ |
| ウヰノオクヤマ ケフコエテ アサキユメミシ ヱヒモセスン"; |
| let sb = s.as_bytes().to_base64(STANDARD); |
| b.iter(|| { |
| sb.from_base64().unwrap(); |
| }); |
| b.bytes = sb.len() as u64; |
| } |
| |
| |
| #[bench] |
| fn bench_to_base64_large(b: &mut Bencher) { |
| let s: Vec<_> = (0..10000).map(|i| ((i as u32 * 12345) % 256) as u8).collect(); |
| b.iter(|| { |
| s.to_base64(STANDARD); |
| }); |
| b.bytes = s.len() as u64; |
| } |
| |
| #[bench] |
| fn bench_from_base64_large(b: &mut Bencher) { |
| let s: Vec<_> = (0..10000).map(|i| ((i as u32 * 12345) % 256) as u8).collect(); |
| let sb = s.to_base64(STANDARD); |
| b.iter(|| { |
| sb.from_base64().unwrap(); |
| }); |
| b.bytes = sb.len() as u64; |
| } |