Skip to content

Commit 6dc5d26

Browse files
committed
bench(ledger): add benchmark for compact subdag serialization
1 parent d71896a commit 6dc5d26

File tree

2 files changed

+21
-7
lines changed

2 files changed

+21
-7
lines changed

ledger/benches/dag.rs

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
// limitations under the License.
1515

1616
use snarkvm_console::prelude::*;
17-
use snarkvm_ledger::narwhal::subdag::test_helpers::sample_subdag;
17+
use snarkvm_ledger::narwhal::subdag::test_helpers::{sample_compact_subdag, sample_full_subdag};
1818
use snarkvm_ledger_narwhal::Subdag;
1919
use snarkvm_utilities::bytes::unchecked_deserialize;
2020

@@ -76,23 +76,36 @@ fn bench_serialization<T: Serialize + DeserializeOwned + ToBytes + FromBytes + C
7676
}
7777
}
7878

79-
fn subdag_serialization(c: &mut Criterion) {
79+
fn full_subdag_serialization(c: &mut Criterion) {
8080
let rng = &mut TestRng::default();
81-
let obj = sample_subdag(rng);
81+
let obj = sample_full_subdag(rng);
8282

83-
let Subdag::Full { subdag } = &obj else { panic!("Cannot bench compact subDAG") };
83+
let Subdag::Full { subdag } = &obj else { unreachable!() };
8484
let batch = subdag.iter().next().unwrap().1.iter().next().unwrap().clone();
8585
let batch_header = batch.batch_header().clone();
8686

8787
bench_serialization(c, "BatchHeader", batch_header);
8888
bench_serialization(c, "BatchCertificate", batch);
89-
bench_serialization(c, "Subdag", obj);
89+
bench_serialization(c, "FullSubdag", obj);
90+
}
91+
92+
fn compact_subdag_serialization(c: &mut Criterion) {
93+
let rng = &mut TestRng::default();
94+
let obj = sample_compact_subdag(rng);
95+
96+
let Subdag::Compact { subdag } = &obj else { unreachable!() };
97+
let batch = subdag.iter().next().unwrap().1.iter().next().unwrap().clone();
98+
let batch_header = batch.compact_header().clone();
99+
100+
bench_serialization(c, "CompactHeader", batch_header);
101+
bench_serialization(c, "CompactCertificate", batch);
102+
bench_serialization(c, "CompactSubdag", obj);
90103
}
91104

92105
criterion_group! {
93106
name = subdag;
94107
config = Criterion::default().sample_size(10);
95-
targets = subdag_serialization
108+
targets = full_subdag_serialization, compact_subdag_serialization
96109
}
97110

98111
criterion_main!(subdag);

ledger/narwhal/traits/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515

1616
use indexmap::IndexSet;
1717
use snarkvm_console::{
18-
program::{Network, Signature},
18+
account::Signature,
19+
network::Network,
1920
types::{Address, Field},
2021
};
2122

0 commit comments

Comments
 (0)