diff --git a/runtime/src/bucket_map_holder_stats.rs b/runtime/src/bucket_map_holder_stats.rs index e26bab35f7..bd56841ef9 100644 --- a/runtime/src/bucket_map_holder_stats.rs +++ b/runtime/src/bucket_map_holder_stats.rs @@ -80,19 +80,20 @@ impl BucketMapHolderStats { } fn ms_per_age(&self, storage: &BucketMapHolder) -> u64 { - let elapsed_ms = self.get_elapsed_ms_and_reset(); - let mut age_now = storage.current_age(); - let last_age = self.last_age.swap(age_now, Ordering::Relaxed); - if last_age > age_now { - // age may have wrapped - age_now += u8::MAX; - } - let age_delta = age_now.saturating_sub(last_age) as u64; - if age_delta > 0 { - elapsed_ms / age_delta - } else { - 0 + if !storage.get_startup() { + let elapsed_ms = self.get_elapsed_ms_and_reset(); + let mut age_now = storage.current_age(); + let last_age = self.last_age.swap(age_now, Ordering::Relaxed); + if last_age > age_now { + // age may have wrapped + age_now += u8::MAX; + } + let age_delta = age_now.saturating_sub(last_age) as u64; + if age_delta > 0 { + return elapsed_ms / age_delta; + } } + 0 // avoid crazy numbers } pub fn remaining_until_next_interval(&self) -> u64 {