From cd6f931223181d5a1d47cba64e857785a175a760 Mon Sep 17 00:00:00 2001 From: sakridge Date: Sun, 21 Nov 2021 14:11:02 +0000 Subject: [PATCH] Add timing metrics to bank creation and rewards calculation (#21066) --- runtime/src/bank.rs | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/runtime/src/bank.rs b/runtime/src/bank.rs index 1842edaf03..587ac54f8a 100644 --- a/runtime/src/bank.rs +++ b/runtime/src/bank.rs @@ -1325,6 +1325,7 @@ impl Bank { reward_calc_tracer: Option, new_bank_options: NewBankOptions, ) -> Self { + let mut time = Measure::start("bank::new_from_parent"); let NewBankOptions { vote_only_bank, disable_epoch_boundary_optimization, @@ -1430,13 +1431,6 @@ impl Bank { sysvar_cache: RwLock::new(Vec::new()), }; - datapoint_info!( - "bank-new_from_parent-heights", - ("slot_height", slot, i64), - ("block_height", new.block_height, i64), - ("parent_slot_height", parent.slot(), i64), - ); - let mut ancestors = Vec::with_capacity(1 + new.parents().len()); ancestors.push(new.slot()); new.parents().iter().for_each(|p| { @@ -1501,6 +1495,17 @@ impl Bank { new.update_clock(Some(parent_epoch)); new.update_fees(); new.fill_sysvar_cache(); + + time.stop(); + + datapoint_info!( + "bank-new_from_parent-heights", + ("slot_height", slot, i64), + ("block_height", new.block_height, i64), + ("parent_slot_height", parent.slot(), i64), + ("time_us", time.as_us(), i64), + ); + new } @@ -2095,6 +2100,7 @@ impl Bank { if prev_epoch == self.epoch() { return; } + let mut timing = Measure::start("epoch_rewards"); // if I'm the first Bank in an epoch, count, claim, disburse rewards from Inflation let slot_in_year = self.slot_in_year_for_inflation(); @@ -2173,6 +2179,7 @@ impl Bank { } else { 0 }; + timing.stop(); datapoint_warn!( "epoch_rewards", @@ -2184,7 +2191,8 @@ impl Bank { ("validator_rewards", validator_rewards_paid, i64), ("active_stake", active_stake, i64), ("pre_capitalization", capitalization, i64), - ("post_capitalization", self.capitalization(), i64) + ("post_capitalization", self.capitalization(), i64), + ("time_us", timing.as_us(), i64) ); }