Remove potentially too costly Packets::default() (#14821)
* Remove potentially too costly Packets::default() * Fix test... * Restore Packets::default() * Restore Packets::default() more
This commit is contained in:
@ -2,7 +2,7 @@
|
||||
|
||||
extern crate test;
|
||||
|
||||
use solana_perf::packet::to_packets;
|
||||
use solana_perf::packet::to_packets_chunked;
|
||||
use solana_perf::recycler::Recycler;
|
||||
use solana_perf::sigverify;
|
||||
use solana_perf::test_tx::test_tx;
|
||||
@ -13,7 +13,7 @@ fn bench_sigverify(bencher: &mut Bencher) {
|
||||
let tx = test_tx();
|
||||
|
||||
// generate packet vector
|
||||
let batches = to_packets(&std::iter::repeat(tx).take(128).collect::<Vec<_>>());
|
||||
let batches = to_packets_chunked(&std::iter::repeat(tx).take(128).collect::<Vec<_>>(), 128);
|
||||
|
||||
let recycler = Recycler::default();
|
||||
let recycler_out = Recycler::default();
|
||||
@ -28,7 +28,7 @@ fn bench_get_offsets(bencher: &mut Bencher) {
|
||||
let tx = test_tx();
|
||||
|
||||
// generate packet vector
|
||||
let batches = to_packets(&std::iter::repeat(tx).take(1024).collect::<Vec<_>>());
|
||||
let batches = to_packets_chunked(&std::iter::repeat(tx).take(1024).collect::<Vec<_>>(), 1024);
|
||||
|
||||
let recycler = Recycler::default();
|
||||
// verify packets
|
||||
|
@ -11,18 +11,11 @@ pub const PACKETS_PER_BATCH: usize = 256;
|
||||
pub const NUM_RCVMMSGS: usize = 128;
|
||||
pub const PACKETS_BATCH_SIZE: usize = PACKETS_PER_BATCH * PACKET_DATA_SIZE;
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
#[derive(Debug, Default, Clone)]
|
||||
pub struct Packets {
|
||||
pub packets: PinnedVec<Packet>,
|
||||
}
|
||||
|
||||
//auto derive doesn't support large arrays
|
||||
impl Default for Packets {
|
||||
fn default() -> Packets {
|
||||
Self::with_capacity(NUM_RCVMMSGS)
|
||||
}
|
||||
}
|
||||
|
||||
pub type PacketsRecycler = Recycler<PinnedVec<Packet>>;
|
||||
|
||||
impl Packets {
|
||||
@ -75,6 +68,7 @@ pub fn to_packets_chunked<T: Serialize>(xs: &[T], chunks: usize) -> Vec<Packets>
|
||||
out
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
pub fn to_packets<T: Serialize>(xs: &[T]) -> Vec<Packets> {
|
||||
to_packets_chunked(xs, NUM_PACKETS)
|
||||
}
|
||||
|
Reference in New Issue
Block a user