34 lines
946 B
Rust
34 lines
946 B
Rust
#![feature(test)]
|
|
|
|
extern crate test;
|
|
|
|
use solana_core::shred::{Shredder, RECOMMENDED_FEC_RATE};
|
|
use solana_sdk::signature::{Keypair, KeypairUtil};
|
|
use std::sync::Arc;
|
|
use test::Bencher;
|
|
|
|
#[bench]
|
|
fn bench_shredder(bencher: &mut Bencher) {
|
|
let kp = Arc::new(Keypair::new());
|
|
// 1Mb
|
|
let data = vec![0u8; 1000 * 1000];
|
|
bencher.iter(|| {
|
|
let mut shredder = Shredder::new(1, 0, RECOMMENDED_FEC_RATE, &kp, 0).unwrap();
|
|
bincode::serialize_into(&mut shredder, &data).unwrap();
|
|
})
|
|
}
|
|
|
|
#[bench]
|
|
fn bench_deshredder(bencher: &mut Bencher) {
|
|
let kp = Arc::new(Keypair::new());
|
|
// 10MB
|
|
let data = vec![0u8; 10000 * 1000];
|
|
let mut shredded = Shredder::new(1, 0, 0.0, &kp, 0).unwrap();
|
|
let _ = bincode::serialize_into(&mut shredded, &data);
|
|
shredded.finalize_data();
|
|
bencher.iter(|| {
|
|
let raw = &mut Shredder::deshred(&shredded.shreds).unwrap();
|
|
assert_ne!(raw.len(), 0);
|
|
})
|
|
}
|