diff --git a/core/src/cost_update_service.rs b/core/src/cost_update_service.rs index 6f367867c3..798b62206f 100644 --- a/core/src/cost_update_service.rs +++ b/core/src/cost_update_service.rs @@ -41,7 +41,7 @@ impl CostUpdateServiceTiming { let elapsed_ms = now - self.last_print; if elapsed_ms > 1000 { datapoint_info!( - "replay-service-timing-stats", + "cost-update-service-stats", ("total_elapsed_us", elapsed_ms * 1000, i64), ( "update_cost_model_count", @@ -101,7 +101,8 @@ impl CostUpdateService { cost_update_receiver: CostUpdateReceiver, ) { let mut cost_update_service_timing = CostUpdateServiceTiming::default(); - let mut dirty = false; + let mut dirty: bool; + let mut update_count: u64; let wait_timer = Duration::from_millis(100); loop { @@ -109,7 +110,8 @@ impl CostUpdateService { break; } - let mut update_count = 0_u64; + dirty = false; + update_count = 0_u64; let mut update_cost_model_time = Measure::start("update_cost_model_time"); for cost_update in cost_update_receiver.try_iter() { dirty |= Self::update_cost_model(&cost_model, &cost_update); diff --git a/core/src/progress_map.rs b/core/src/progress_map.rs index 6bf9efc88c..0cfec9c347 100644 --- a/core/src/progress_map.rs +++ b/core/src/progress_map.rs @@ -124,18 +124,34 @@ impl ReplaySlotStats { .iter() .collect(); per_pubkey_timings.sort_by(|a, b| b.1.accumulated_us.cmp(&a.1.accumulated_us)); - let total: u64 = per_pubkey_timings.iter().map(|a| a.1.accumulated_us).sum(); + let (total_us, total_units, total_count) = + per_pubkey_timings + .iter() + .fold((0, 0, 0), |(sum_us, sum_units, sum_count), a| { + ( + sum_us + a.1.accumulated_us, + sum_units + a.1.accumulated_units, + sum_count + a.1.count, + ) + }); + for (pubkey, time) in per_pubkey_timings.iter().take(5) { datapoint_info!( "per_program_timings", + ("slot", slot as i64, i64), ("pubkey", pubkey.to_string(), String), - ("execute_us", time.accumulated_us, i64) + ("execute_us", time.accumulated_us, i64), + ("accumulated_units", time.accumulated_units, i64), + ("count", time.count, i64) ); } datapoint_info!( "per_program_timings", + ("slot", slot as i64, i64), ("pubkey", "all", String), - ("execute_us", total, i64) + ("execute_us", total_us, i64), + ("accumulated_units", total_units, i64), + ("count", total_count, i64) ); } }