blob: 2d64eee3e58a6b5cbb1b02a5d9d334aeeb51afea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
use criterion::{black_box, Throughput, criterion_group, criterion_main, Criterion};
use sequoia_openpgp::crypto;
use sequoia_openpgp::cert::Cert;
use sequoia_openpgp::parse::Parse;
fn run_random(size: usize) {
let mut buf = vec![0; size];
crypto::random(&mut buf);
}
fn read_lutz_key() {
let _lutz = Cert::from_bytes(sequoia_openpgp::tests::key("lutz.gpg")).unwrap();
}
fn read_key(bytes: &[u8]) {
// copied from cert.rs::test_into_packets
// Tests that Cert::into_packets() and Cert::serialize(..) agree.
let _dkg = Cert::from_bytes(bytes);
//let mut buf = Vec::new();
//for p in dkg.clone().into_packets() {
// p.serialize(&mut buf)?;
//}
//let dkg = dkg.to_vec()?;
//if false && buf != dkg {
// std::fs::write("/tmp/buf", &buf)?;
// std::fs::write("/tmp/dkg", &dkg)?;
//}
//assert_eq!(buf, dkg);
//Ok(())
}
fn bench_random(c: &mut Criterion) {
let mut group = c.benchmark_group("bench_crypto_random");
group.sample_size(50);
for i in (8..33).step_by(8) {
group.throughput(Throughput::Bytes(i as u64));
group.bench_function(format!("crypto::random {:02}", i), |b| b.iter(|| run_random(black_box(i)) ));
};
group.finish();
}
fn bench_read_keys(c: &mut Criterion) {
let mut group = c.benchmark_group("read keys");
let foo = ["dkg.gpg", "lutz.gpg"];
foo.iter().for_each(|&filename| {
let bytes = sequoia_openpgp::tests::key(filename);
group.bench_function(filename, |b| b.iter(|| read_key(bytes)));
});
group.finish();
}
criterion_group!(benches, bench_read_keys);
criterion_main!(benches);
|