field.rs 965 B

1234567891011121314151617181920212223242526272829303132
  1. use bincode;
  2. use criterion::{black_box, criterion_group, criterion_main, Criterion};
  3. use ff::Field;
  4. use rand::thread_rng;
  5. use utils::field::Fp;
  6. pub fn bench_encode(c: &mut Criterion) {
  7. c.bench_function("Fp::encode", |b| {
  8. let x = Fp::random(thread_rng());
  9. b.iter(|| {
  10. black_box(
  11. bincode::encode_to_vec(x, bincode::config::standard()).expect("encode failed"),
  12. )
  13. });
  14. });
  15. }
  16. pub fn bench_decode(c: &mut Criterion) {
  17. c.bench_function("Fp::decode", |b| {
  18. let x = Fp::random(thread_rng());
  19. let bytes = bincode::encode_to_vec(x, bincode::config::standard()).expect("encode failed");
  20. b.iter(|| {
  21. black_box(
  22. bincode::decode_from_slice::<Fp, _>(&bytes, bincode::config::standard())
  23. .expect("decode failed"),
  24. )
  25. });
  26. });
  27. }
  28. criterion_group!(benches, bench_encode, bench_decode);
  29. criterion_main!(benches);