Add limit and shrink policy for recycler (#15320)

This commit is contained in:
carllin
2021-02-24 00:15:58 -08:00
committed by GitHub
parent 2f46da346d
commit c2e8814dce
24 changed files with 515 additions and 127 deletions

22
perf/benches/recycler.rs Normal file
View File

@ -0,0 +1,22 @@
#![feature(test)]
extern crate test;
use solana_perf::{packet::PacketsRecycler, recycler::Recycler};
use test::Bencher;
#[bench]
fn bench_recycler(bencher: &mut Bencher) {
solana_logger::setup();
let recycler: PacketsRecycler = Recycler::new_without_limit("me");
for _ in 0..1000 {
recycler.recycle_for_test(recycler.allocate().expect("There is no limit"));
}
bencher.iter(move || {
recycler.recycle_for_test(recycler.allocate().expect("There is no limit"));
});
}

View File

@ -15,8 +15,8 @@ fn bench_sigverify(bencher: &mut Bencher) {
// generate packet vector
let batches = to_packets_chunked(&std::iter::repeat(tx).take(128).collect::<Vec<_>>(), 128);
let recycler = Recycler::default();
let recycler_out = Recycler::default();
let recycler = Recycler::new_without_limit("");
let recycler_out = Recycler::new_without_limit("");
// verify packets
bencher.iter(|| {
let _ans = sigverify::ed25519_verify(&batches, &recycler, &recycler_out);
@ -30,7 +30,7 @@ fn bench_get_offsets(bencher: &mut Bencher) {
// generate packet vector
let batches = to_packets_chunked(&std::iter::repeat(tx).take(1024).collect::<Vec<_>>(), 1024);
let recycler = Recycler::default();
let recycler = Recycler::new_without_limit("");
// verify packets
bencher.iter(|| {
let _ans = sigverify::generate_offsets(&batches, &recycler);