Advertisement
Guest User

Untitled

a guest
Oct 1st, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #![feature(test)]
  2.  
  3. extern crate test;
  4.  
  5. use solana_core::entry::Entry;
  6. use solana_core::shred::{Shredder, RECOMMENDED_FEC_RATE};
  7. use solana_core::test_tx::test_tx;
  8. use solana_sdk::hash::Hash;
  9. use solana_sdk::signature::{Keypair, KeypairUtil};
  10. use std::sync::Arc;
  11. use test::Bencher;
  12.  
  13. fn make_large_unchained_entries(txs_per_entry: u64, num_entries: u64) -> Vec<Entry> {
  14. (0..num_entries)
  15. .map(|_| Entry {
  16. num_hashes: 100_000,
  17. hash: Hash::default(),
  18. transactions: vec![test_tx(); txs_per_entry as usize],
  19. })
  20. .collect()
  21. }
  22.  
  23. #[bench]
  24. fn shredder_entries(bencher: &mut Bencher) {
  25. let kp = Arc::new(Keypair::new());
  26. let entries = make_large_unchained_entries(128, 100);
  27. let data = bincode::serialize(&entries).unwrap();
  28. // 1Mb
  29. bencher.iter(|| {
  30. let mut shredder = Shredder::new(1, 0, RECOMMENDED_FEC_RATE, kp.clone()).unwrap();
  31. let (shreds, _) = shredder.entries_to_shreds(entries.clone(), false, 0);
  32. assert!(shreds.len() >= data.len() / 1000);
  33.  
  34. // bincode::serialize_into(&mut shredder, &entries).unwrap();
  35. })
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement