Struct mprober_lib::process::ProcessTimeStat[][src]

pub struct ProcessTimeStat {
    pub utime: u32,
    pub stime: u32,
}

Fields

utime: u32stime: u32

Implementations

impl ProcessTimeStat[src]

pub fn compute_cpu_utilization_in_percentage(
    &self,
    process_time_stat_after_this: &ProcessTimeStat,
    total_cpu_time: f64
) -> f64
[src]

Compute CPU utilization in percentage between two ProcessTimeStat instances at different time. If it returns 1.0, means 100%.

extern crate mprober_lib;

use std::thread::sleep;
use std::time::Duration;

use mprober_lib::cpu;
use mprober_lib::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

impl Clone for ProcessTimeStat[src]

impl Debug for ProcessTimeStat[src]

impl Default for ProcessTimeStat[src]

impl From<ProcessStat> for ProcessTimeStat[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.