Add ProgramCacheUs to execute timings (#473)

This commit is contained in:
Andrew Fitzgerald 2024-04-02 10:03:55 -05:00 committed by GitHub
parent e8159251e9
commit 65f54bec88
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 0 deletions

View File

@ -51,6 +51,7 @@ pub enum ExecuteTimingType {
CollectLogsUs, CollectLogsUs,
TotalBatchesLen, TotalBatchesLen,
UpdateTransactionStatuses, UpdateTransactionStatuses,
ProgramCacheUs,
} }
pub struct Metrics([u64; ExecuteTimingType::CARDINALITY]); pub struct Metrics([u64; ExecuteTimingType::CARDINALITY]);
@ -94,6 +95,13 @@ eager_macro_rules! { $eager_1
.index(ExecuteTimingType::CheckUs), .index(ExecuteTimingType::CheckUs),
i64 i64
), ),
(
"program_cache_us",
*$self
.metrics
.index(ExecuteTimingType::ProgramCacheUs),
i64
),
( (
"load_us", "load_us",
*$self *$self

View File

@ -211,6 +211,7 @@ impl<FG: ForkGraph> TransactionBatchProcessor<FG> {
log_messages_bytes_limit: Option<usize>, log_messages_bytes_limit: Option<usize>,
limit_to_load_programs: bool, limit_to_load_programs: bool,
) -> LoadAndExecuteSanitizedTransactionsOutput { ) -> LoadAndExecuteSanitizedTransactionsOutput {
let mut program_cache_time = Measure::start("program_cache");
let mut program_accounts_map = Self::filter_executable_program_accounts( let mut program_accounts_map = Self::filter_executable_program_accounts(
callbacks, callbacks,
sanitized_txs, sanitized_txs,
@ -234,6 +235,7 @@ impl<FG: ForkGraph> TransactionBatchProcessor<FG> {
execution_results: vec![], execution_results: vec![],
}; };
} }
program_cache_time.stop();
let mut load_time = Measure::start("accounts_load"); let mut load_time = Measure::start("accounts_load");
let mut loaded_transactions = load_accounts( let mut loaded_transactions = load_accounts(
@ -328,6 +330,10 @@ impl<FG: ForkGraph> TransactionBatchProcessor<FG> {
sanitized_txs.len(), 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::LoadUs, load_time.as_us());
timings.saturating_add_in_place(ExecuteTimingType::ExecuteUs, execution_time.as_us()); timings.saturating_add_in_place(ExecuteTimingType::ExecuteUs, execution_time.as_us());