diff options
-rw-r--r-- | src/ui/components/kernel.rs | 5 | ||||
-rw-r--r-- | src/ui/components/utilities.rs | 21 |
2 files changed, 22 insertions, 4 deletions
diff --git a/src/ui/components/kernel.rs b/src/ui/components/kernel.rs index 0ca7cd5..90f05a4 100644 --- a/src/ui/components/kernel.rs +++ b/src/ui/components/kernel.rs @@ -163,7 +163,10 @@ impl KernelMetrics { let iowait_length = cpu_stat .iowait_time .saturating_sub(self.cpu_stat[i].iowait_time); - let bar_length: usize = (((busy_length + iowait_length) as f64 + let bar_length: usize = ((cpu_stat + .busy_time() + .saturating_sub(self.cpu_stat[i].busy_time()) + as f64 / (cpu_stat .total_time() .saturating_sub(self.cpu_stat[i].total_time())) as f64) diff --git a/src/ui/components/utilities.rs b/src/ui/components/utilities.rs index 409dbb6..bb124cb 100644 --- a/src/ui/components/utilities.rs +++ b/src/ui/components/utilities.rs @@ -82,15 +82,30 @@ pub struct Stat { } impl Stat { + #[inline(always)] pub fn total_time(&self) -> usize { - (self.user_time - self.guest) + self.user_time + self.system_time + self.irq + self.soft_irq - + (self.nice_time - self.guest_nice) + + self.nice_time + self.idle_time + self.iowait_time - + (self.guest + self.guest_nice) + + self.guest + + self.guest_nice + + self.steal + } + + #[inline(always)] + pub fn busy_time(&self) -> usize { + self.user_time + + self.system_time + + self.irq + + self.soft_irq + + self.nice_time + + self.iowait_time + + self.guest + + self.guest_nice + self.steal } } |