pub fn get_process_cycle_time() -> Option<u64> {
Some(0)
}
pub fn get_process_time() -> Option<u64> {
use libc::{getrusage, rusage, RUSAGE_SELF};
let mut usage: rusage = unsafe { std::mem::zeroed() };
let result = unsafe { getrusage(RUSAGE_SELF, &mut usage) };
if result == 0 {
let user_time =
(usage.ru_utime.tv_sec as u64) * 10_000_000 + (usage.ru_utime.tv_usec as u64) * 10;
let system_time =
(usage.ru_stime.tv_sec as u64) * 10_000_000 + (usage.ru_stime.tv_usec as u64) * 10;
return Some(user_time + system_time);
}
None
}
pub fn get_system_time() -> Option<u64> {
None
}
pub fn get_number_of_processors() -> Option<u64> {
use libc::{sysconf, _SC_NPROCESSORS_ONLN};
let result = unsafe { sysconf(_SC_NPROCESSORS_ONLN) };
if result > 0 {
return Some(result as u64);
}
None
}
pub fn get_peak_workingset_size() -> Option<u64> {
use libc::{getrusage, rusage, RUSAGE_SELF};
let mut usage: rusage = unsafe { std::mem::zeroed() };
let result = unsafe { getrusage(RUSAGE_SELF, &mut usage) };
if result == 0 {
return Some(usage.ru_maxrss as u64);
}
None
}