Remove `total_data_size` and `data_size_changed` from `ExecuteDetailsTimings` (#27051)

* Removes total_data_size and data_size_changed from ExecuteDetailsTimings.
This commit is contained in:
Alexander Meißner 2022-08-23 14:58:32 +02:00 committed by GitHub
parent 9b157499ef
commit b2ae7def06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 57 deletions

View File

@ -120,7 +120,6 @@ impl PreAccount {
if outermost_call {
timings.total_account_count = timings.total_account_count.saturating_add(1);
timings.total_data_size = timings.total_data_size.saturating_add(post.data().len());
if owner_changed
|| lamports_changed
|| data_len_changed
@ -129,8 +128,6 @@ impl PreAccount {
|| self.changed
{
timings.changed_account_count = timings.changed_account_count.saturating_add(1);
timings.data_size_changed =
timings.data_size_changed.saturating_add(post.data().len());
}
}

View File

@ -190,16 +190,6 @@ eager_macro_rules! { $eager_1
$self.details.total_account_count,
i64
),
(
"execute_details_total_data_size",
$self.details.total_data_size,
i64
),
(
"execute_details_data_size_changed",
$self.details.data_size_changed,
i64
),
(
"execute_details_create_executor_register_syscalls_us",
$self
@ -409,8 +399,6 @@ pub struct ExecuteDetailsTimings {
pub get_or_create_executor_us: u64,
pub changed_account_count: u64,
pub total_account_count: u64,
pub total_data_size: usize,
pub data_size_changed: usize,
pub create_executor_register_syscalls_us: u64,
pub create_executor_load_elf_us: u64,
pub create_executor_verify_code_us: u64,
@ -430,8 +418,6 @@ impl ExecuteDetailsTimings {
);
saturating_add_assign!(self.changed_account_count, other.changed_account_count);
saturating_add_assign!(self.total_account_count, other.total_account_count);
saturating_add_assign!(self.total_data_size, other.total_data_size);
saturating_add_assign!(self.data_size_changed, other.data_size_changed);
saturating_add_assign!(
self.create_executor_register_syscalls_us,
other.create_executor_register_syscalls_us
@ -547,15 +533,12 @@ mod tests {
let mut other_execute_details_timings =
construct_execute_timings_with_program(&program_id, us, compute_units_consumed);
let account_count = 1;
let data_size_changed = 1;
other_execute_details_timings.serialize_us = us;
other_execute_details_timings.create_vm_us = us;
other_execute_details_timings.execute_us = us;
other_execute_details_timings.deserialize_us = us;
other_execute_details_timings.changed_account_count = account_count;
other_execute_details_timings.total_account_count = account_count;
other_execute_details_timings.total_data_size = data_size_changed;
other_execute_details_timings.data_size_changed = data_size_changed;
// Accumulate the other instance into the current instance
execute_details_timings.accumulate(&other_execute_details_timings);

View File

@ -4453,9 +4453,7 @@ impl Bank {
let ExecutionRecord {
accounts,
mut return_data,
changed_account_count,
total_size_of_all_accounts,
total_size_of_touched_accounts,
touched_account_count,
accounts_resize_delta,
} = transaction_context.into();
loaded_transaction.accounts = accounts;
@ -4467,15 +4465,7 @@ impl Bank {
timings.details.total_account_count,
loaded_transaction.accounts.len() as u64
);
saturating_add_assign!(timings.details.changed_account_count, changed_account_count);
saturating_add_assign!(
timings.details.total_data_size,
total_size_of_all_accounts as usize
);
saturating_add_assign!(
timings.details.data_size_changed,
total_size_of_touched_accounts as usize
);
saturating_add_assign!(timings.details.changed_account_count, touched_account_count);
accounts_data_len_delta = status.as_ref().map_or(0, |_| accounts_resize_delta);
}

View File

@ -891,38 +891,22 @@ impl<'a> BorrowedAccount<'a> {
pub struct ExecutionRecord {
pub accounts: Vec<TransactionAccount>,
pub return_data: TransactionReturnData,
pub changed_account_count: u64,
pub total_size_of_all_accounts: u64,
pub total_size_of_touched_accounts: u64,
pub touched_account_count: u64,
pub accounts_resize_delta: i64,
}
/// Used by the bank in the runtime to write back the processed accounts and recorded instructions
impl From<TransactionContext> for ExecutionRecord {
fn from(context: TransactionContext) -> Self {
let mut changed_account_count = 0u64;
let mut total_size_of_all_accounts = 0u64;
let mut total_size_of_touched_accounts = 0u64;
let account_touched_flags = context
.account_touched_flags
.try_borrow()
.expect("borrowing transaction_context.account_touched_flags failed");
for (index_in_transaction, was_touched) in account_touched_flags.iter().enumerate() {
let account_data_size = context
.get_account_at_index(index_in_transaction)
.expect("index_in_transaction out of bounds")
.try_borrow()
.expect("borrowing a transaction_context.account failed")
.data()
.len() as u64;
total_size_of_all_accounts =
total_size_of_all_accounts.saturating_add(account_data_size);
if *was_touched {
changed_account_count = changed_account_count.saturating_add(1);
total_size_of_touched_accounts =
total_size_of_touched_accounts.saturating_add(account_data_size);
}
}
let touched_account_count = account_touched_flags
.iter()
.fold(0u64, |accumulator, was_touched| {
accumulator.saturating_add(*was_touched as u64)
});
Self {
accounts: Vec::from(Pin::into_inner(context.account_keys))
.into_iter()
@ -933,9 +917,7 @@ impl From<TransactionContext> for ExecutionRecord {
)
.collect(),
return_data: context.return_data,
changed_account_count,
total_size_of_all_accounts,
total_size_of_touched_accounts,
touched_account_count,
accounts_resize_delta: RefCell::into_inner(context.accounts_resize_delta),
}
}