| #![cfg(feature = "serde")] |
| #![feature(test)] |
| |
| extern crate bincode; |
| extern crate serde_json; |
| extern crate test; |
| extern crate uuid; |
| |
| use test::Bencher; |
| use uuid::prelude::*; |
| |
| #[bench] |
| fn bench_json_encode(b: &mut Bencher) { |
| let uuid = Uuid::parse_str("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4").unwrap(); |
| let mut buffer = [0_u8; 38]; |
| b.iter(|| { |
| serde_json::to_writer(&mut buffer as &mut [u8], &uuid).unwrap(); |
| test::black_box(buffer); |
| }); |
| b.bytes = buffer.len() as u64; |
| } |
| |
| #[bench] |
| fn bench_json_decode(b: &mut Bencher) { |
| let s = "\"F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4\""; |
| b.iter(|| serde_json::from_str::<Uuid>(s).unwrap()); |
| b.bytes = s.len() as u64; |
| } |
| |
| #[bench] |
| fn bench_bincode_encode(b: &mut Bencher) { |
| let uuid = Uuid::parse_str("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E4").unwrap(); |
| let mut buffer = [0_u8; 24]; |
| b.iter(|| { |
| bincode::serialize_into(&mut buffer as &mut [u8], &uuid).unwrap(); |
| test::black_box(buffer); |
| }); |
| b.bytes = buffer.len() as u64; |
| } |
| |
| #[bench] |
| fn bench_bincode_decode(b: &mut Bencher) { |
| let bytes = [ |
| 16, 0, 0, 0, 0, 0, 0, 0, 249, 22, 140, 94, 206, 178, 79, 170, 182, 191, |
| 50, 155, 243, 159, 161, 228, |
| ]; |
| b.iter(|| bincode::deserialize::<Uuid>(&bytes).unwrap()); |
| b.bytes = bytes.len() as u64; |
| } |