|
14 | 14 | // limitations under the License. |
15 | 15 |
|
16 | 16 | 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}; |
18 | 18 | use snarkvm_ledger_narwhal::Subdag; |
19 | 19 | use snarkvm_utilities::bytes::unchecked_deserialize; |
20 | 20 |
|
@@ -76,23 +76,36 @@ fn bench_serialization<T: Serialize + DeserializeOwned + ToBytes + FromBytes + C |
76 | 76 | } |
77 | 77 | } |
78 | 78 |
|
79 | | -fn subdag_serialization(c: &mut Criterion) { |
| 79 | +fn full_subdag_serialization(c: &mut Criterion) { |
80 | 80 | let rng = &mut TestRng::default(); |
81 | | - let obj = sample_subdag(rng); |
| 81 | + let obj = sample_full_subdag(rng); |
82 | 82 |
|
83 | | - let Subdag::Full { subdag } = &obj else { panic!("Cannot bench compact subDAG") }; |
| 83 | + let Subdag::Full { subdag } = &obj else { unreachable!() }; |
84 | 84 | let batch = subdag.iter().next().unwrap().1.iter().next().unwrap().clone(); |
85 | 85 | let batch_header = batch.batch_header().clone(); |
86 | 86 |
|
87 | 87 | bench_serialization(c, "BatchHeader", batch_header); |
88 | 88 | 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); |
90 | 103 | } |
91 | 104 |
|
92 | 105 | criterion_group! { |
93 | 106 | name = subdag; |
94 | 107 | config = Criterion::default().sample_size(10); |
95 | | - targets = subdag_serialization |
| 108 | + targets = full_subdag_serialization, compact_subdag_serialization |
96 | 109 | } |
97 | 110 |
|
98 | 111 | criterion_main!(subdag); |
0 commit comments