Struct mprober_lib::process::ProcessTimeStat
source · pub struct ProcessTimeStat {
pub utime: u32,
pub stime: u32,
}
Fields§
§utime: u32
§stime: u32
Implementations§
source§impl ProcessTimeStat
impl ProcessTimeStat
sourcepub fn compute_cpu_utilization_in_percentage(
&self,
process_time_stat_after_this: &ProcessTimeStat,
total_cpu_time: f64
) -> f64
pub fn compute_cpu_utilization_in_percentage( &self, process_time_stat_after_this: &ProcessTimeStat, total_cpu_time: f64 ) -> f64
Compute CPU utilization in percentage between two ProcessTimeStat
instances at different time. If it returns 1.0
, means 100%
.
use std::{thread::sleep, time::Duration};
use mprober_lib::{cpu, process};
let pre_average_cpu_stat = cpu::get_average_cpu_stat().unwrap();
let pre_process_time_stat = process::get_process_time_stat(1).unwrap();
sleep(Duration::from_millis(100));
let average_cpu_stat = cpu::get_average_cpu_stat().unwrap();
let process_time_stat = process::get_process_time_stat(1).unwrap();
let total_cpu_time_f64 = {
let pre_average_cpu_time = pre_average_cpu_stat.compute_cpu_time();
let average_cpu_time = average_cpu_stat.compute_cpu_time();
(average_cpu_time.get_total_time()
- pre_average_cpu_time.get_total_time()) as f64
};
let cpu_percentage = pre_process_time_stat
.compute_cpu_utilization_in_percentage(
&process_time_stat,
total_cpu_time_f64,
);
println!("{:.2}%", cpu_percentage * 100.0);
Trait Implementations§
source§impl Clone for ProcessTimeStat
impl Clone for ProcessTimeStat
source§fn clone(&self) -> ProcessTimeStat
fn clone(&self) -> ProcessTimeStat
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ProcessTimeStat
impl Debug for ProcessTimeStat
source§impl Default for ProcessTimeStat
impl Default for ProcessTimeStat
source§fn default() -> ProcessTimeStat
fn default() -> ProcessTimeStat
Returns the “default value” for a type. Read more
source§impl From<ProcessStat> for ProcessTimeStat
impl From<ProcessStat> for ProcessTimeStat
source§fn from(process_stat: ProcessStat) -> Self
fn from(process_stat: ProcessStat) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl RefUnwindSafe for ProcessTimeStat
impl Send for ProcessTimeStat
impl Sync for ProcessTimeStat
impl Unpin for ProcessTimeStat
impl UnwindSafe for ProcessTimeStat
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