From 3ed30e803391eca77c32596946fcc1603bf2753b Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Sun, 18 Sep 2016 21:24:38 -0600 Subject: [PATCH] Add G1/G2 serialization benchmarks. --- benches/api.rs | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/benches/api.rs b/benches/api.rs index 040aa6c..20e63da 100644 --- a/benches/api.rs +++ b/benches/api.rs @@ -2,8 +2,45 @@ extern crate test; extern crate rand; extern crate bn; +extern crate bincode; use bn::*; +use bincode::SizeLimit::Infinite; +use bincode::rustc_serialize::{encode, decode}; + +#[bench] +fn g1_deserialization(b: &mut test::Bencher) { + const SAMPLES: usize = 1000; + + let rng = &mut rand::thread_rng(); + + let serialized: Vec<_> = (0..SAMPLES).map(|_| encode(&G1::random(rng), Infinite).unwrap()).collect(); + + let mut ctr = 0; + + b.iter(|| { + ctr += 1; + + decode::(&serialized[ctr % SAMPLES]).unwrap() + }); +} + +#[bench] +fn g2_deserialization(b: &mut test::Bencher) { + const SAMPLES: usize = 1000; + + let rng = &mut rand::thread_rng(); + + let serialized: Vec<_> = (0..SAMPLES).map(|_| encode(&G2::random(rng), Infinite).unwrap()).collect(); + + let mut ctr = 0; + + b.iter(|| { + ctr += 1; + + decode::(&serialized[ctr % SAMPLES]).unwrap() + }); +} #[bench] fn fr_addition(b: &mut test::Bencher) {