Refactor ExecuteTimings w/ enum-indexed array (#23085)

This commit is contained in:
Gavin Chan
2022-02-22 16:46:56 -06:00
committed by GitHub
parent 5766567e9f
commit 20d031e2b8
7 changed files with 138 additions and 33 deletions

View File

@@ -33,6 +33,7 @@
//! It offers a high-level API that signs transactions
//! on behalf of the caller, and a low-level API for when they have
//! already been signed and verified.
use solana_program_runtime::timings::ExecuteTimingType;
#[allow(deprecated)]
use solana_sdk::recent_blockhashes_account;
use {
@@ -4066,9 +4067,10 @@ impl Bank {
execution_time.as_us(),
sanitized_txs.len(),
);
timings.check_us = timings.check_us.saturating_add(check_time.as_us());
timings.load_us = timings.load_us.saturating_add(load_time.as_us());
timings.execute_us = timings.execute_us.saturating_add(execution_time.as_us());
timings.saturating_add_in_place(ExecuteTimingType::CheckUs, check_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());
let mut executed_transactions_count: usize = 0;
let mut executed_with_successful_result_count: usize = 0;
@@ -4411,10 +4413,13 @@ impl Bank {
write_time.as_us(),
sanitized_txs.len()
);
timings.store_us = timings.store_us.saturating_add(write_time.as_us());
timings.update_stakes_cache_us = timings
.update_stakes_cache_us
.saturating_add(update_stakes_cache_time.as_us());
timings.saturating_add_in_place(ExecuteTimingType::StoreUs, write_time.as_us());
timings.saturating_add_in_place(
ExecuteTimingType::UpdateStakesCacheUs,
update_stakes_cache_time.as_us(),
);
self.update_transaction_statuses(sanitized_txs, &execution_results);
let fee_collection_results =
self.filter_program_errors_and_collect_fee(sanitized_txs, &execution_results);