摘要
PC Monitor 是一套面向局域网的实时系统性能监控工具。它把数据采集和界面显示拆成两个独立部分:Windows 采集端负责读取 CPU、内存和 NVIDIA GPU 状态,Windows 或 Android 显示端则通过 TCP 接收数据并绘制仪表盘、详情面板与历史曲线。项目已经发布 v1.0,可直接下载桌面端与 Android 安装包,也支持从源码构建。
项目背景
电脑性能监控通常直接显示在被监控设备上,但在游戏、渲染或全屏工作场景中,这种方式并不方便。PC Monitor 选择了采集端与显示端分离的设计,让闲置的 Android 设备、平板或另一台 Windows 电脑成为独立监控屏。
这种架构还有一个实际好处:采集逻辑与界面技术解耦。只要遵循项目定义的 JSON 数据协议,就可以继续扩展新的显示端,而不必修改 Windows 采集程序。
核心功能
- 实时展示 CPU、内存、GPU 与显存占用率。
- 展示 CPU 主频与温度,以及 GPU 温度、功耗、风扇转速和核心频率。
- 提供 CPU、内存与 GPU 使用率历史曲线。
- Windows 桌面端与 Android 端共用同一采集协议。
- 内置 Dark、Tech Blue、Cyberpunk、Minimal Light 四种主题。
- 记忆目标 IP,支持自动连接、断线重连和多个显示客户端同时连接。
技术架构与技术栈
Windows 采集端使用 Rust 开发,通过 sysinfo 读取系统状态,并使用 nvml-wrapper 获取 NVIDIA GPU 数据。异步网络与任务调度由 Tokio 负责,数据通过 Serde 序列化为 JSON,经 TCP 9876 端口持续推送。
Windows 显示端同样使用 Rust,界面基于 iced;Android 显示端使用 Flutter,采用 Provider 管理状态、fl_chart 绘制历史曲线,并通过 shared_preferences 保存连接配置。
传输协议采用换行分隔 JSON。相较于引入完整 Web 服务,这种方式结构简单、开销低,也便于其他语言实现兼容客户端。
项目亮点
最值得关注的是它清晰的采集端—显示端边界。采集端只负责数据,显示端只负责连接与呈现,因而可以在不影响核心采集逻辑的情况下扩展移动端。README 还给出了组件资源开销、网络协议和常见故障说明,降低了使用门槛。
项目已提供 v1.0 Release,其中包含 Windows 采集端、Windows 显示端和 Android APK。对于希望先体验再决定是否编译源码的用户,这一点很实用。
使用与部署
最快的方式是从 Releases 下载 v1.0:在被监控的 Windows 电脑上运行采集端,在 Windows 或 Android 显示端输入采集端 IP 地址并连接。两台设备应处于可互通的局域网,防火墙需要放行 TCP 9876 端口。
从源码构建 Windows 端需要稳定版 Rust 工具链和 Visual Studio C++ Build Tools;执行 cargo build --release 后可得到采集端与显示端程序。Android 端需要 Flutter 3.24+ 和 Android SDK,在子目录中获取依赖后构建 APK。Flutter 构建路径建议使用纯英文目录。
需要注意:GPU 指标当前主要依赖 NVIDIA NVML,AMD 与 Intel 核显暂不在完整支持范围内;部分电脑也可能无法通过 WMI 读取 CPU 温度。
适用场景
- 把旧手机或平板改造成电脑性能副屏。
- 在游戏、渲染、编译等高负载场景中独立观察资源占用。
- 学习 Rust 异步网络、桌面 GUI 与 Flutter 客户端协作。
- 作为局域网轻量监控协议和多客户端架构的参考实现。