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