| #![feature(test)] |
| |
| extern crate test; |
| |
| |
| |
| use serde::{Deserialize, Serialize}; |
| |
| use test::Bencher; |
| |
| #[bench] |
| fn bench_strings_1000(bencher: &mut Bencher) { |
| bench_strings(bencher, 1000) |
| } |
| |
| #[bench] |
| fn bench_strings_5000(bencher: &mut Bencher) { |
| bench_strings(bencher, 5000) |
| } |
| |
| #[bench] |
| fn bench_strings_10000(bencher: &mut Bencher) { |
| bench_strings(bencher, 10000) |
| } |
| |
| fn bench_strings(bencher: &mut Bencher, size: usize) { |
| let vec: Vec<String> = ::std::iter::repeat("abcdefghijklmnopqrstuvwxyz".into()) |
| .take(size) |
| .collect(); |
| |
| let mut buf = Vec::new(); |
| vec.serialize(&mut rmp_serde::Serializer::new(&mut buf)).unwrap(); |
| |
| bencher.iter(|| { |
| <Vec<String>>::deserialize(&mut rmp_serde::Deserializer::new(&buf[..])).unwrap(); |
| }) |
| } |