49 lines
1.3 KiB
Rust
49 lines
1.3 KiB
Rust
#![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;
|
|
}
|