# perftools **Repository Path**: eventer/perftools ## Basic Information - **Project Name**: perftools - **Description**: No description available - **Primary Language**: Go - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-23 - **Last Updated**: 2026-04-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PerfTools 一款基于 TUI 的系统性能监控工具,实时展示 CPU、内存、网络、磁盘和进程信息。 ## 功能特性 - **系统概览**: 操作系统、内核、CPU 型号、核心数、进程数、文件描述符、负载均值 - **CPU 监控**: 用户/系统/调优/空闲/IO等待/硬中断/软中断/窃取各占比,以及上下文切换次数、运行队列、负载 - **内存监控**: 总量、已用、空闲、可用、活跃、非活跃、缓存、缓冲、Swap - **网络监控**: 收发字节/包数、TCP 连接状态(已建立/等待/关闭)、丢包数、错误数 - **磁盘 I/O**: 读写速度、次数、IOPS - **进程监控**: 按 PID 或全部进程,支持 CPU/内存排序,展示 CPU%、内存%、句柄、线程、RSS、上下文切换 - **系统参数**: 资源限制(打开文件数、最大进程、最大内存)、网卡队列、TCP 半连接、内存映射、TCP 复用 - **交互式 TUI**: 暂停/恢复、排序切换、刷新间隔调整、PID 筛选、进程列表滚动 ## 编译 ```bash go build -o bin/perftools . # 当前平台 ./build.sh # 交叉编译 linux/amd64 + linux/arm64 ``` ## 运行 ```bash ./bin/perftools ``` ## 快捷键 | 按键 | 功能 | |------|------| | `q` / `ctrl+c` | 退出 | | `p` | 暂停/恢复采集 | | `s` | 切换 CPU/内存 排序 | | `r` | 立即刷新 | | `+` / `-` | 增加/减少刷新间隔 (500ms-10s) | | `P` | 进入 PID 输入模式 | | `j` / `k` / `up` / `down` | 滚动进程列表 | ## 项目结构 ``` . ├── main.go # 入口点、信号处理、主 Model ├── pid_input.go # PID 输入模式实现 ├── display/ # TUI 渲染模块 ├── collector/ # 系统指标采集 (gopsutil) ├── config/ # 配置状态管理 └── input/ # 输入处理工具 ``` ## 技术栈 - [bubbletea](https://github.com/charmbracelet/bubbletea) - TUI 框架 - [lipgloss](https://github.com/charmbracelet/lipgloss) - 终端样式 - [gopsutil](https://github.com/shirou/gopsutil) - 系统指标采集