pub struct CPUStat {
pub user: u64,
pub nice: u64,
pub system: u64,
pub idle: u64,
pub iowait: u64,
pub irq: u64,
pub softirq: u64,
pub steal: u64,
pub guest: u64,
pub guest_nice: u64,
}
Fields§
§user: u64
§nice: u64
§system: u64
§idle: u64
§iowait: u64
§irq: u64
§softirq: u64
§steal: u64
§guest: u64
§guest_nice: u64
Implementations§
Source§impl CPUStat
impl CPUStat
Sourcepub fn compute_cpu_time(&self) -> CPUTime
pub fn compute_cpu_time(&self) -> CPUTime
Add all idle time and non-idle time respectively.
use mprober_lib::cpu;
let average_cpu_stat = cpu::get_average_cpu_stat().unwrap();
let cpu_time = average_cpu_stat.compute_cpu_time();
println!("{cpu_time:#?}");
Sourcepub fn compute_cpu_utilization_in_percentage(
&self,
cpu_stat_after_this: &CPUStat,
) -> f64
pub fn compute_cpu_utilization_in_percentage( &self, cpu_stat_after_this: &CPUStat, ) -> f64
Compute CPU utilization in percentage between two CPUStat
instances at different time. If it returns 1.0
, means 100%
.
use std::{thread::sleep, time::Duration};
use mprober_lib::cpu;
let pre_average_cpu_stat = cpu::get_average_cpu_stat().unwrap();
sleep(Duration::from_millis(100));
let average_cpu_stat = cpu::get_average_cpu_stat().unwrap();
let cpu_percentage = pre_average_cpu_stat
.compute_cpu_utilization_in_percentage(&average_cpu_stat);
println!("{:.2}%", cpu_percentage * 100.0);
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CPUStat
impl RefUnwindSafe for CPUStat
impl Send for CPUStat
impl Sync for CPUStat
impl Unpin for CPUStat
impl UnwindSafe for CPUStat
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more