From 65f54bec88a70407da475563214cee7808954662 Mon Sep 17 00:00:00 2001 From: Andrew Fitzgerald Date: Tue, 2 Apr 2024 10:03:55 -0500 Subject: [PATCH] Add ProgramCacheUs to execute timings (#473) --- program-runtime/src/timings.rs | 8 ++++++++ svm/src/transaction_processor.rs | 6 ++++++ 2 files changed, 14 insertions(+) diff --git a/program-runtime/src/timings.rs b/program-runtime/src/timings.rs index 8eeb9c5a0..e70c15e8d 100644 --- a/program-runtime/src/timings.rs +++ b/program-runtime/src/timings.rs @@ -51,6 +51,7 @@ pub enum ExecuteTimingType { CollectLogsUs, TotalBatchesLen, UpdateTransactionStatuses, + ProgramCacheUs, } pub struct Metrics([u64; ExecuteTimingType::CARDINALITY]); @@ -94,6 +95,13 @@ eager_macro_rules! { $eager_1 .index(ExecuteTimingType::CheckUs), i64 ), + ( + "program_cache_us", + *$self + .metrics + .index(ExecuteTimingType::ProgramCacheUs), + i64 + ), ( "load_us", *$self diff --git a/svm/src/transaction_processor.rs b/svm/src/transaction_processor.rs index 0bc056e42..e25c2ccfb 100644 --- a/svm/src/transaction_processor.rs +++ b/svm/src/transaction_processor.rs @@ -211,6 +211,7 @@ impl TransactionBatchProcessor { log_messages_bytes_limit: Option, limit_to_load_programs: bool, ) -> LoadAndExecuteSanitizedTransactionsOutput { + let mut program_cache_time = Measure::start("program_cache"); let mut program_accounts_map = Self::filter_executable_program_accounts( callbacks, sanitized_txs, @@ -234,6 +235,7 @@ impl TransactionBatchProcessor { execution_results: vec![], }; } + program_cache_time.stop(); let mut load_time = Measure::start("accounts_load"); let mut loaded_transactions = load_accounts( @@ -328,6 +330,10 @@ impl TransactionBatchProcessor { sanitized_txs.len(), ); + timings.saturating_add_in_place( + ExecuteTimingType::ProgramCacheUs, + program_cache_time.as_us(), + ); timings.saturating_add_in_place(ExecuteTimingType::LoadUs, load_time.as_us()); timings.saturating_add_in_place(ExecuteTimingType::ExecuteUs, execution_time.as_us());