Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![feature(test)]
- extern crate test;
- use solana_core::entry::Entry;
- use solana_core::shred::{Shredder, RECOMMENDED_FEC_RATE};
- use solana_core::test_tx::test_tx;
- use solana_sdk::hash::Hash;
- use solana_sdk::signature::{Keypair, KeypairUtil};
- use std::sync::Arc;
- use test::Bencher;
- fn make_large_unchained_entries(txs_per_entry: u64, num_entries: u64) -> Vec<Entry> {
- (0..num_entries)
- .map(|_| Entry {
- num_hashes: 100_000,
- hash: Hash::default(),
- transactions: vec![test_tx(); txs_per_entry as usize],
- })
- .collect()
- }
- #[bench]
- fn shredder_entries(bencher: &mut Bencher) {
- let kp = Arc::new(Keypair::new());
- let entries = make_large_unchained_entries(128, 100);
- let data = bincode::serialize(&entries).unwrap();
- // 1Mb
- bencher.iter(|| {
- let mut shredder = Shredder::new(1, 0, RECOMMENDED_FEC_RATE, kp.clone()).unwrap();
- let (shreds, _) = shredder.entries_to_shreds(entries.clone(), false, 0);
- assert!(shreds.len() >= data.len() / 1000);
- // bincode::serialize_into(&mut shredder, &entries).unwrap();
- })
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement