🦀/100 Projects/Notes/Source

src/main.rs

View on GitHub
use sysinfo::{System};
use std::thread;
use std::time::Duration;
 
fn main() {
    println!("🖥️ System Resource Monitor");
    let mut sys = System::new_all();
 
    // Refresh every 2 seconds
    loop {
        sys.refresh_all();
 
        let total_memory = sys.total_memory() / 1024;
        let used_memory = sys.used_memory() / 1024;
 
        println!("\n==============================");
        println!("🔋 CPU Usage:");
        for (i, cpu) in sys.cpus().iter().enumerate() {
            println!("Core {}: {:.2}%", i, cpu.cpu_usage());
        }
 
        println!("🧠 Memory Usage: {} MB / {} MB", used_memory, total_memory);
        println!("📊 Total Processes: {}", sys.processes().len());
 
        println!("Top 5 Processes by CPU:");
        let mut processes: Vec<_> = sys.processes().values().collect();
        processes.sort_by(|a, b| b.cpu_usage().partial_cmp(&a.cpu_usage()).unwrap());
        for proc in processes.iter().take(10) {
            println!(
                "PID: {:<6} CPU: {:>5.1}%  Name: {}",
                proc.pid(),
                proc.cpu_usage(),
                proc.name()
            );
        }
 
        println!("==============================");
        thread::sleep(Duration::from_secs(30));
    }
}

← Back to folder