Refactor: consolidate memo extraction for each message version (#22422) (#22435)

(cherry picked from commit 35a5dd9c45)

Co-authored-by: Justin Starry <justin@solana.com>
This commit is contained in:
mergify[bot]
2022-01-12 00:23:03 +00:00
committed by GitHub
parent 58dcc451a9
commit f4d1577337
2 changed files with 93 additions and 74 deletions

View File

@@ -0,0 +1,33 @@
#![feature(test)]
extern crate test;
use {
solana_sdk::{instruction::CompiledInstruction, message::Message, pubkey::Pubkey},
solana_transaction_status::extract_memos::{spl_memo_id_v1, spl_memo_id_v3, ExtractMemos},
test::Bencher,
};
#[bench]
fn bench_extract_memos(b: &mut Bencher) {
let mut account_keys: Vec<Pubkey> = (0..64).map(|_| Pubkey::new_unique()).collect();
account_keys[62] = spl_memo_id_v1();
account_keys[63] = spl_memo_id_v3();
let memo = "Test memo";
let instructions: Vec<_> = (0..20)
.map(|i| CompiledInstruction {
program_id_index: 62 + (i % 2),
accounts: vec![],
data: memo.as_bytes().to_vec(),
})
.collect();
let message = Message {
account_keys,
instructions,
..Message::default()
};
b.iter(|| message.extract_memos());
}