Get information about your machine and monitor the resources usage.
There are many crates to get information about your system. We actually are using some of them but this crate adds a feature to constantly monitor the system without a big overhead.
You can probe your system for CPU or memory usage once per second and your machine performance will not be affected at all. Other crates consumed like 7-10% of CPU which is not acceptable. But to be fair, these other crates are doing many other things apart from getting the cpu/memory usage.
This crate focus only on this, nothing else. Limited but lightweight. If you want a full featured crate better use other one.
Just a simple monitoring
toml
[dependencies]
machine-info = "1.0.2"
Put this in your main.rs:
```rust use machine_info::Machine; use std::{thread, time};
fn main() { let mut m = Machine::new(); // Please use a real PIDs! m.trackprocess(132801).unwrap(); m.trackprocess(32930).unwrap();
for _ in 1..100 {
let processes = m.processes_status();
let system = m.system_status();
let graphics = m.graphics_status();
println!("{:?} {:?} {:?}", processes, system, graphics);
thread::sleep(time::Duration::from_millis(1000));
}
}
```
In addition to the crates in this repository, the Tokio project also maintains several other libraries, including:
sysinfo
]: sysinfo is a crate used to get a system’s information.nvml-wrapper
]: A safe and ergonomic Rust wrapper for the NVIDIA Management Library (NVML)This project is licensed under the [Apache 2 license].