#cpu-memory #cpu #cpu-gpu #memory #monitor #gpu #nvidia

machine-info

监控CPU、GPU和内存。使用它来跟踪资源使用情况

9个稳定版本

1.0.9 2022年10月4日
1.0.6 2022年9月27日
1.0.1 2022年9月3日
1.0.0 2022年9月2日

433操作系统 中排名

Download history 15/week @ 2024-03-11 16/week @ 2024-03-18 5/week @ 2024-03-25 21/week @ 2024-04-01 10/week @ 2024-04-08 45/week @ 2024-04-15 50/week @ 2024-04-22 32/week @ 2024-04-29 31/week @ 2024-05-06 74/week @ 2024-05-13 98/week @ 2024-05-20 66/week @ 2024-05-27 74/week @ 2024-06-03 49/week @ 2024-06-10 57/week @ 2024-06-17 49/week @ 2024-06-24

每月233 次下载
cutefetch 中使用

自定义许可

26KB
420

Machine Info

获取您的机器信息并监控资源使用情况。

Crates.io Apache 2 licensed

网站 | API 文档

概览

有许多crate可以获取系统信息。我们实际上正在使用其中一些,但这个crate添加了一个功能,可以持续监控系统而不会造成大的开销。

您可以每秒探测一次系统的CPU或内存使用情况,而您的机器性能将不受任何影响。其他crate消耗了7-10%的CPU,这是不可接受的。但为了公正,这些其他crate除了获取cpu/memory使用情况之外,还做了很多其他事情。

这个crate只关注这一点,没有其他。有限但轻量级。如果您需要一个功能齐全的crate,请使用其他一个。

示例

简单的监控

[dependencies]
machine-info = "1.0.6"

将其放入main.rs中

use machine_info::Machine;
use std::{thread, time};


fn main() {
    let mut m = Machine::new();
    // Please use a real PIDs!
    m.track_process(132801).unwrap();
    m.track_process(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));
    }
}

特性

您可以使用v4l支持编译库进行摄像头扫描。

[dependencies]
machine-info = { version = "1.0.6", features = ["v4l"] }

您可能需要安装libclang-dev软件包

sudo apt-get install libclang-dev

这个crate基于其他一些很棒的库,如

  • sysinfo: sysinfo是一个用于获取系统信息的crate。
  • nvml-wrapper: NVIDIA 管理库 (NVML) 的安全且易于使用的Rust封装
  • libv4l-rs: 安全的video4linux (v4l) 绑定

许可

该项目采用Apache 2 许可

依赖项

~2.5–3.5MB
~72K SLoC