游戏性能数据采集 + 可视化对比面板。支持 Windows / Linux / Android / iOS 四平台。
对标 PerfDog / MSI Afterburner,面向游戏 QA 工程师。
| 平台 |
采集方式 |
宿主机 |
指标覆盖 |
| 🖥️ Windows |
gopsutil + nvidia-smi |
任意 OS |
CPU/内存/GPU/磁盘/网络/帧时间 |
| 🐧 Linux |
gopsutil + nvidia-smi |
任意 OS |
CPU/内存/GPU/磁盘/网络 |
| 📱 Android |
ADB shell 远程采集 |
任意 OS |
CPU/内存/GPU/FPS/磁盘/网络/电池/温度 |
| 🍎 iOS |
pymobiledevice3 instruments |
仅 macOS |
CPU/内存/FPS/磁盘/网络/电池/温度 |
- CPU: 使用率%、用户态/内核态、上下文切换
- 内存: RSS/VMS MB、页错误
- 磁盘 I/O: 读写字节、实时速率 B/s
- 网络 I/O: 收发字节、实时速率 B/s
- 统计: Avg/Min/Max/P1/P5/P95/P99、FPS稳定性指数
| 平台 |
GPU 厂商 |
采集方式 |
| Windows/Linux |
NVIDIA |
nvidia-smi |
| Android |
Qualcomm Adreno |
kgsl sysfs |
| Android |
ARM Mali |
mali0 sysfs |
- FPS、帧时间ms、1% Low / 0.1% Low FPS
- Jank 检测、卡顿率、帧时间分布直方图
- Android: SurfaceFlinger --latency
- Windows: PresentMon 集成
- iOS: CoreAnimation FPS (via instruments)
- 电池: 电量%、温度℃、电压mV、电流mA、功耗mW
- 温度: CPU/GPU/电池温度、降频检测
go mod tidy
go build -o gameperf .
./gameperf --port 9090 --data ./data
cd web && npm install && npm run dev
chmod +x build.sh && ./build.sh
# 访问 http://localhost:9090
输入目标进程 PID → 开始采集
- PC 安装 ADB,USB 连接设备
- 面板选 📱 Android → 选设备 → 选包名 → 开始
- 无需安装 APK、无需 root
- macOS 宿主机 +
pip3 install pymobiledevice3
- USB 连接 iPhone/iPad,信任设备
- 面板选 🍎 iOS → 选设备 → 输入 Bundle ID → 开始
- 无需越狱、无需改 App、无需企业证书
| 指标 |
采集方法 |
Root |
| CPU% |
dumpsys cpuinfo |
❌ |
| 内存 PSS |
dumpsys meminfo |
❌ |
| GPU 使用率 |
Adreno/Mali sysfs |
❌ |
| FPS |
SurfaceFlinger --latency |
❌ |
| 磁盘 I/O |
/proc/pid/io |
❌ |
| 网络 |
dumpsys netstats |
❌ |
| 电池 |
/sys/class/power_supply/ |
❌ |
| 温度 |
/sys/class/thermal/ |
❌ |
| 指标 |
采集方法 |
越狱 |
| CPU% |
DVT instruments sysmon |
❌ |
| 内存 physFootprint |
DVT instruments sysmon |
❌ |
| FPS |
CoreAnimation instruments |
❌ |
| 磁盘 I/O |
sysmon process |
❌ |
| 网络 |
sysmon process |
❌ |
| 电池 |
diagnostics battery |
❌ |
| 温度 |
diagnostics thermal |
❌ |
| GPU 使用率 |
❌ 需要 SDK 集成 |
— |
| 方法 |
路径 |
说明 |
| POST |
/api/sessions |
创建会话 (platform: windows/android/ios) |
| POST |
/api/sessions/:id/start |
开始采集 |
| POST |
/api/sessions/:id/stop |
停止采集 |
| GET |
/api/sessions/:id/summary |
统计摘要 |
| GET |
/api/sessions/:id/frame-analysis |
帧时间分布 |
| GET |
/api/sessions/:id/system |
系统/设备信息 |
| GET |
/api/compare?ids=a,b |
多会话对比 |
| 方法 |
路径 |
说明 |
| GET |
/api/android/devices |
列出 ADB 设备 |
| GET |
/api/android/packages |
列出已安装包 |
| 方法 |
路径 |
说明 |
| GET |
/api/ios/check |
检查依赖是否就绪 |
| GET |
/api/ios/devices |
列出 iOS 设备 |
| GET |
/api/ios/apps |
列出已安装 App |
gameperf/
├── main.go
├── internal/
│ ├── model/types.go # 数据模型(50+ 字段)
│ ├── db/sqlite.go # SQLite + 统计 + 帧时间分析
│ ├── collector/
│ │ ├── collector.go # Windows/Linux 采集器
│ │ ├── android.go # Android ADB 采集器
│ │ └── ios.go # iOS instruments 采集器
│ └── api/server.go # REST API
├── web/src/
│ ├── views/
│ │ ├── Dashboard.vue # 实时监控(四平台切换)
│ │ ├── History.vue # 历史记录 + 帧时间分析
│ │ └── Compare.vue # 多维对比
│ └── api.js
├── go.mod
└── README.md
- 🎮 PC/手游版本优化前后对比
- 📈 长时间运行内存泄漏监控
- 🔥 GPU 温度/功耗监控
- 🎯 FPS 稳定性 + 卡顿分析
- 📱 Android 电池功耗 + 降频检测
- 🍎 iOS 内存/CPU/电池监控
- ⚖️ 跨平台对比(Android vs iOS 同游戏)
- 📊 QA 自动化性能基线