cleanup benchmarks, re-enable enum, remove bench_token_deserializer

test bench_enum::bench_decoder_dog         ... bench:       111 ns/iter (+/- 9)
test bench_enum::bench_decoder_frog        ... bench:       343 ns/iter (+/- 95)
test bench_enum::bench_deserializer_dog    ... bench:       124 ns/iter (+/- 41)
test bench_enum::bench_deserializer_frog   ... bench:       315 ns/iter (+/- 17)
test bench_map::bench_decoder_000          ... bench:       580 ns/iter (+/- 138)
test bench_map::bench_decoder_003          ... bench:      2469 ns/iter (+/- 956)
test bench_map::bench_decoder_100          ... bench:     68491 ns/iter (+/- 11653)
test bench_map::bench_deserializer_000     ... bench:       819 ns/iter (+/- 234)
test bench_map::bench_deserializer_003     ... bench:      2589 ns/iter (+/- 594)
test bench_map::bench_deserializer_100     ... bench:     61954 ns/iter (+/- 23604)
test bench_struct::bench_decoder_0_0       ... bench:       602 ns/iter (+/- 153)
test bench_struct::bench_decoder_1_0       ... bench:      1664 ns/iter (+/- 500)
test bench_struct::bench_decoder_1_5       ... bench:      4715 ns/iter (+/- 1499)
test bench_struct::bench_deserializer_0_0  ... bench:       700 ns/iter (+/- 189)
test bench_struct::bench_deserializer_1_0  ... bench:      2318 ns/iter (+/- 595)
test bench_struct::bench_deserializer_1_5  ... bench:      5131 ns/iter (+/- 1650)
test bench_vec::bench_decoder_int_000      ... bench:        22 ns/iter (+/- 22)
test bench_vec::bench_decoder_int_003      ... bench:       154 ns/iter (+/- 40)
test bench_vec::bench_decoder_int_100      ... bench:      1038 ns/iter (+/- 203)
test bench_vec::bench_decoder_u8_000       ... bench:        16 ns/iter (+/- 4)
test bench_vec::bench_decoder_u8_003       ... bench:       158 ns/iter (+/- 43)
test bench_vec::bench_decoder_u8_100       ... bench:      1499 ns/iter (+/- 672)
test bench_vec::bench_deserializer_int_000 ... bench:        16 ns/iter (+/- 4)
test bench_vec::bench_deserializer_int_003 ... bench:       156 ns/iter (+/- 43)
test bench_vec::bench_deserializer_int_100 ... bench:      1027 ns/iter (+/- 244)
test bench_vec::bench_deserializer_u8_000  ... bench:        16 ns/iter (+/- 10)
test bench_vec::bench_deserializer_u8_003  ... bench:       166 ns/iter (+/- 43)
test bench_vec::bench_deserializer_u8_100  ... bench:      1226 ns/iter (+/- 234)
test de::tests::bench_token_deserializer   ... bench:       367 ns/iter (+/- 107)
This commit is contained in:
Erick Tryzelaar 2014-05-26 09:43:51 -07:00
parent 88ed9cb4f2
commit 81dfaa4f3d
6 changed files with 52 additions and 49 deletions

View File

@ -261,7 +261,19 @@ mod deserializer {
//////////////////////////////////////////////////////////////////////////////
#[bench]
fn bench_enum_decoder(b: &mut Bencher) {
fn bench_decoder_dog(b: &mut Bencher) {
b.iter(|| {
let animal = Dog;
let mut d = decoder::AnimalDecoder::new(animal.clone());
let value: Animal = Decodable::decode(&mut d).unwrap();
assert_eq!(value, animal);
})
}
#[bench]
fn bench_decoder_frog(b: &mut Bencher) {
b.iter(|| {
let animal = Frog("Henry".to_strbuf(), 349);
@ -273,7 +285,19 @@ fn bench_enum_decoder(b: &mut Bencher) {
}
#[bench]
fn bench_enum_deserializer(b: &mut Bencher) {
fn bench_deserializer_dog(b: &mut Bencher) {
b.iter(|| {
let animal = Dog;
let mut d = deserializer::AnimalDeserializer::new(animal.clone());
let value: Animal = Deserializable::deserialize(&mut d).unwrap();
assert_eq!(value, animal);
})
}
#[bench]
fn bench_deserializer_frog(b: &mut Bencher) {
b.iter(|| {
let animal = Frog("Henry".to_strbuf(), 349);

View File

@ -245,7 +245,7 @@ fn run_decoder<
}
#[bench]
fn bench_decoder_map_000(b: &mut Bencher) {
fn bench_decoder_000(b: &mut Bencher) {
b.iter(|| {
let m: HashMap<String, int> = HashMap::new();
run_decoder(decoder::IntDecoder::new(m.clone()), m)
@ -253,7 +253,7 @@ fn bench_decoder_map_000(b: &mut Bencher) {
}
#[bench]
fn bench_decoder_map_003(b: &mut Bencher) {
fn bench_decoder_003(b: &mut Bencher) {
b.iter(|| {
let mut m: HashMap<String, int> = HashMap::new();
for i in range(0, 3) {
@ -264,7 +264,7 @@ fn bench_decoder_map_003(b: &mut Bencher) {
}
#[bench]
fn bench_decoder_map_100(b: &mut Bencher) {
fn bench_decoder_100(b: &mut Bencher) {
b.iter(|| {
let mut m: HashMap<String, int> = HashMap::new();
for i in range(0, 100) {
@ -285,7 +285,7 @@ fn run_deserializer<
}
#[bench]
fn bench_deserializer_map_000(b: &mut Bencher) {
fn bench_deserializer_000(b: &mut Bencher) {
b.iter(|| {
let m: HashMap<String, int> = HashMap::new();
run_deserializer(deserializer::IntDeserializer::new(m.clone()), m)
@ -293,7 +293,7 @@ fn bench_deserializer_map_000(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_map_003(b: &mut Bencher) {
fn bench_deserializer_003(b: &mut Bencher) {
b.iter(|| {
let mut m: HashMap<String, int> = HashMap::new();
for i in range(0, 3) {
@ -304,7 +304,7 @@ fn bench_deserializer_map_003(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_map_100(b: &mut Bencher) {
fn bench_deserializer_100(b: &mut Bencher) {
b.iter(|| {
let mut m: HashMap<String, int> = HashMap::new();
for i in range(0, 100) {

View File

@ -379,7 +379,7 @@ mod deserializer {
}
#[bench]
fn bench_struct_decoder_outer_empty(b: &mut Bencher) {
fn bench_decoder_0_0(b: &mut Bencher) {
b.iter(|| {
let mut map = HashMap::new();
map.insert("abc".to_strbuf(), Some('c'));
@ -396,7 +396,7 @@ fn bench_struct_decoder_outer_empty(b: &mut Bencher) {
}
#[bench]
fn bench_struct_decoder_inner_empty(b: &mut Bencher) {
fn bench_decoder_1_0(b: &mut Bencher) {
b.iter(|| {
let map = HashMap::new();
@ -418,7 +418,7 @@ fn bench_struct_decoder_inner_empty(b: &mut Bencher) {
}
#[bench]
fn bench_struct_decoder(b: &mut Bencher) {
fn bench_decoder_1_5(b: &mut Bencher) {
b.iter(|| {
let mut map = HashMap::new();
map.insert("1".to_strbuf(), Some('a'));
@ -445,7 +445,7 @@ fn bench_struct_decoder(b: &mut Bencher) {
}
#[bench]
fn bench_struct_deserializer_outer_empty(b: &mut Bencher) {
fn bench_deserializer_0_0(b: &mut Bencher) {
b.iter(|| {
let mut map = HashMap::new();
map.insert("abc".to_strbuf(), Some('c'));
@ -462,7 +462,7 @@ fn bench_struct_deserializer_outer_empty(b: &mut Bencher) {
}
#[bench]
fn bench_struct_deserializer_inner_empty(b: &mut Bencher) {
fn bench_deserializer_1_0(b: &mut Bencher) {
b.iter(|| {
let map = HashMap::new();
@ -484,7 +484,7 @@ fn bench_struct_deserializer_inner_empty(b: &mut Bencher) {
}
#[bench]
fn bench_struct_deserializer(b: &mut Bencher) {
fn bench_deserializer_1_5(b: &mut Bencher) {
b.iter(|| {
let mut map = HashMap::new();
map.insert("1".to_strbuf(), Some('a'));

View File

@ -373,7 +373,7 @@ fn run_deserializer<
}
#[bench]
fn bench_decoder_vec_int_000(b: &mut Bencher) {
fn bench_decoder_int_000(b: &mut Bencher) {
b.iter(|| {
let v: Vec<int> = vec!();
run_decoder(decoder::IntDecoder::new(v.clone()), v)
@ -381,7 +381,7 @@ fn bench_decoder_vec_int_000(b: &mut Bencher) {
}
#[bench]
fn bench_decoder_vec_int_003(b: &mut Bencher) {
fn bench_decoder_int_003(b: &mut Bencher) {
b.iter(|| {
let v: Vec<int> = vec!(1, 2, 3);
run_decoder(decoder::IntDecoder::new(v.clone()), v)
@ -389,7 +389,7 @@ fn bench_decoder_vec_int_003(b: &mut Bencher) {
}
#[bench]
fn bench_decoder_vec_int_100(b: &mut Bencher) {
fn bench_decoder_int_100(b: &mut Bencher) {
b.iter(|| {
let v: Vec<int> = range(0, 100).collect();
run_decoder(decoder::IntDecoder::new(v.clone()), v)
@ -397,7 +397,7 @@ fn bench_decoder_vec_int_100(b: &mut Bencher) {
}
#[bench]
fn bench_decoder_vec_u8_000(b: &mut Bencher) {
fn bench_decoder_u8_000(b: &mut Bencher) {
b.iter(|| {
let v: Vec<u8> = vec!();
run_decoder(decoder::U8Decoder::new(v.clone()), v)
@ -405,7 +405,7 @@ fn bench_decoder_vec_u8_000(b: &mut Bencher) {
}
#[bench]
fn bench_decoder_vec_u8_003(b: &mut Bencher) {
fn bench_decoder_u8_003(b: &mut Bencher) {
b.iter(|| {
let v: Vec<u8> = vec!(1, 2, 3);
run_decoder(decoder::U8Decoder::new(v.clone()), v)
@ -413,7 +413,7 @@ fn bench_decoder_vec_u8_003(b: &mut Bencher) {
}
#[bench]
fn bench_decoder_vec_u8_100(b: &mut Bencher) {
fn bench_decoder_u8_100(b: &mut Bencher) {
b.iter(|| {
let v: Vec<u8> = range(0u8, 100).collect();
run_decoder(decoder::U8Decoder::new(v.clone()), v)
@ -421,7 +421,7 @@ fn bench_decoder_vec_u8_100(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_vec_int_000(b: &mut Bencher) {
fn bench_deserializer_int_000(b: &mut Bencher) {
b.iter(|| {
let v: Vec<int> = vec!();
run_deserializer(deserializer::IntDeserializer::new(v.clone()), v)
@ -429,7 +429,7 @@ fn bench_deserializer_vec_int_000(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_vec_int_003(b: &mut Bencher) {
fn bench_deserializer_int_003(b: &mut Bencher) {
b.iter(|| {
let v: Vec<int> = vec!(1, 2, 3);
run_deserializer(deserializer::IntDeserializer::new(v.clone()), v)
@ -437,7 +437,7 @@ fn bench_deserializer_vec_int_003(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_vec_int_100(b: &mut Bencher) {
fn bench_deserializer_int_100(b: &mut Bencher) {
b.iter(|| {
let v: Vec<int> = range(0, 100).collect();
run_deserializer(deserializer::IntDeserializer::new(v.clone()), v)
@ -445,7 +445,7 @@ fn bench_deserializer_vec_int_100(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_vec_u8_000(b: &mut Bencher) {
fn bench_deserializer_u8_000(b: &mut Bencher) {
b.iter(|| {
let v: Vec<u8> = vec!();
run_deserializer(deserializer::U8Deserializer::new(v.clone()), v)
@ -453,7 +453,7 @@ fn bench_deserializer_vec_u8_000(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_vec_u8_003(b: &mut Bencher) {
fn bench_deserializer_u8_003(b: &mut Bencher) {
b.iter(|| {
let v: Vec<u8> = vec!(1, 2, 3);
run_deserializer(deserializer::U8Deserializer::new(v.clone()), v)
@ -461,7 +461,7 @@ fn bench_deserializer_vec_u8_003(b: &mut Bencher) {
}
#[bench]
fn bench_deserializer_vec_u8_100(b: &mut Bencher) {
fn bench_deserializer_u8_100(b: &mut Bencher) {
b.iter(|| {
let v: Vec<u8> = range(0u8, 100).collect();
run_deserializer(deserializer::U8Deserializer::new(v.clone()), v)

21
de.rs
View File

@ -473,7 +473,6 @@ deserialize_tuple! { T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, }
#[cfg(test)]
mod tests {
use collections::HashMap;
use test::Bencher;
use serialize::Decoder;
@ -888,24 +887,4 @@ mod tests {
assert_eq!(value, map);
}
#[bench]
fn bench_token_deserializer(b: &mut Bencher) {
b.iter(|| {
let tokens = vec!(
SeqStart(3),
Int(5),
Int(6),
Int(7),
End,
);
let mut d = TokenDeserializer::new(tokens);
let value: Vec<int> = Deserializable::deserialize(&mut d).unwrap();
assert_eq!(value, vec!(5, 6, 7));
})
}
}

View File

@ -17,8 +17,8 @@ pub mod de;
//#[cfg(test)]
//pub mod bench_bytes;
//#[cfg(test)]
//pub mod bench_enum;
#[cfg(test)]
pub mod bench_enum;
#[cfg(test)]
pub mod bench_struct;