Use Serde's with attribute to shorten length encodings in Transaction

This commit is contained in:
Greg Fitzgerald
2019-03-25 09:15:16 -06:00
parent 857dc2ba47
commit c4bc710d3a
8 changed files with 323 additions and 61 deletions

36
sdk/benches/short_vec.rs Normal file
View File

@ -0,0 +1,36 @@
#![feature(test)]
extern crate test;
use bincode::deserialize;
use solana_sdk::short_vec::ShortVec;
use test::Bencher;
// Return a ShortVec with 127 bytes
fn create_encoded_short_vec() -> Vec<u8> {
let mut bytes = vec![127];
bytes.extend_from_slice(&vec![0u8; 127]);
bytes
}
// Return a Vec with 127 bytes
fn create_encoded_vec() -> Vec<u8> {
let mut bytes = vec![127, 0, 0, 0, 0, 0, 0, 0];
bytes.extend_from_slice(&vec![0u8; 127]);
bytes
}
#[bench]
fn bench_short_vec(b: &mut Bencher) {
b.iter(|| {
let bytes = test::black_box(create_encoded_short_vec());
deserialize::<ShortVec<u8>>(&bytes).unwrap();
});
}
#[bench]
fn bench_vec(b: &mut Bencher) {
b.iter(|| {
let bytes = test::black_box(create_encoded_vec());
deserialize::<Vec<u8>>(&bytes).unwrap();
});
}