51个版本
| 0.7.13 | 2024年8月8日 |
|---|---|
| 0.7.12 | 2024年2月19日 |
| 0.7.11 | 2023年11月9日 |
| 0.7.8 | 2023年6月6日 |
| 0.3.9 | 2021年12月29日 |
#86 in 操作系统
148 每月下载量
1.5MB
42K SLoC
precord
用于记录进程或系统性能数据的命令行工具。
安装
使用 cargo 进行安装
cargo install precord
使用方法
precord -p 1203 -o result.svg
选项
precord -h
-c / --category- 记录类别,可能值cpu- 进程的CPU使用率mem- 进程的内存使用率alloc- 进程的分配gpu- 进程的GPU使用率vram- 进程的VRAM使用率fps- 进程的帧率net_in/net_out- 进程的网络接收/发送disk_read/disk_write- 进程的磁盘读写kobject- 进程的内核对象计数thread- 进程的线程计数sys_cpu- 系统的CPU使用率sys_cpu_freq- 系统的CPU频率sys_cpu_temp- 系统的CPU温度sys_gpu- 系统的GPU使用率sys_power- 系统的功耗sys_npu_power- npu的功耗
-p / --process- 进程ID--name- 进程名称-o / --output- 指定输出文件,可能的扩展名.svg.html.json.csv
-i / --interval- 记录间隔-n- 记录计数--time- 记录时间限制,例如:--time 1h30m59s-r / --recurse-children- 递归子进程标志--skip- 跳过记录数--gpu-calc- Gpu计算,可能的值最大值总和
--interactive- 交互模式--auto-save- 自动保存间隔
命令模式
在记录期间输入 : 将进入命令模式,按下 Esc 将返回记录模式。支持的命令有
w- 写入(保存)输出q- 退出wq-w和q的组合time- 修改记录时间限制
子命令
thread-list <PID>- 列出线程和CPU使用情况
precord-core
用于检索进程和系统性能数据的库。
use precord_core::{Features, GpuCalculation, System};
use std::thread;
use std::time::Duration;
fn main() {
let mut system = System::new(Features::PROCESS || Features::GPU, [1203]).unwrap();
thread::sleep(Duration::from_secs(1));
system.update();
if let Some(cpu_usage) = system.process_cpu_usage(1203) {
println!("Process({}) %CPU: {:.2}%", 1203, cpu_usage)
}
#[cfg(target_os = "windows")]
if let Some(gpu_usage) = system.process_gpu_usage(1203, GpuCalculation::Max) {
println!("Process({}) %GPU: {:.2}%", 1203, gpu_usage)
}
if let Some(sys_gpu_usage) = system.system_gpu_usage(GpuCalculation::Max) {
println!("System %GPU: {:.2}%", sys_gpu_usage);
}
}
支持的平台
| macOS | Windows | Linux | |
|---|---|---|---|
| cpu | ✅ | ✅ | ✅ |
| mem | ✅ | ✅ | ✅ |
| alloc | ✅ | ||
| gpu | ✅ | ||
| vram | ✅ | ||
| fps | ✅ | ✅ | |
| net_in/net_out | ✅ | ✅ | |
| disk_read/disk_write | ✅ | ||
| kobject | ✅ | ✅ | |
| thread | ✅ | ✅ | |
| sys_cpu | ✅ | ✅ | ✅ |
| sys_cpu_freq | ✅ | ✅ | ✅ |
| sys_cpu_temp | ✅ | ✅ | |
| sys_gpu | ✅ | ✅ | |
| sys_power | ✅ | ✅ | |
| sys_npu_power | ✅ |
权限
| macOS | Windows | Linux | |
|---|---|---|---|
| cpu | |||
| mem | |||
| alloc | |||
| gpu | |||
| vram | |||
| fps | 管理员 + get-task-allow | 管理员 | |
| net_in/net_out | 管理员 | ||
| disk_read/disk_write | |||
| kobject | |||
| thread | |||
| sys_cpu | |||
| sys_cpu_freq | 管理员 | ||
| sys_cpu_temp | |||
| sys_gpu | |||
| sys_power | |||
| sys_npu_power | 管理员 | ||
| 系统进程 (WindowServer, dwm.exe, 等.) |
管理员 | 管理员 |
待办事项
相关项目
- Rust
- Go
- Python
依赖
~13–57MB
~1M SLoC