87 行
2.8 KiB
Markdown
87 行
2.8 KiB
Markdown
|
|
# 规范-性能基准
|
|||
|
|
|
|||
|
|
> **位置**: `docs/开发规范/规范-性能基准.md`
|
|||
|
|
> **版本**: v1.0
|
|||
|
|
> **日期**: 2026-07-08
|
|||
|
|
> **关联**: AGENTS.md、TDD-01(服务端架构)、GDD-03(战斗系统)、GDD-21(数值平衡)
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. 性能红线
|
|||
|
|
|
|||
|
|
以下指标为 **不可突破的红线**,超过即视为事故:
|
|||
|
|
|
|||
|
|
| 指标 | 红线 | 监控方式 | 告警阈值 |
|
|||
|
|
|------|------|----------|----------|
|
|||
|
|
| 战斗结算(单场) | < 50ms | 服务端打点 | > 50ms 告警,> 100ms 事故 |
|
|||
|
|
| API 响应(P95) | < 200ms | Nakama 内置监控 | > 200ms 告警,> 500ms 事故 |
|
|||
|
|
| 登录流程(端到端) | < 3s | 客户端打点 | > 3s 告警,> 10s 事故 |
|
|||
|
|
| 战报渲染 | 60fps | 客户端性能监控 | < 30fps 告警 |
|
|||
|
|
| 数据库查询(单条) | < 100ms | PostgreSQL slow log | > 100ms 告警,> 500ms 事故 |
|
|||
|
|
| 热更下载(百兆网络) | < 10s | CDN 监控 | > 10s 告警 |
|
|||
|
|
| 内存泄漏 | 0 | 服务端内存监控 | 连续 24h 内存增长 > 10% 告警 |
|
|||
|
|
|
|||
|
|
### 1.1 事故定义
|
|||
|
|
|
|||
|
|
- **P0 事故**:性能红线被突破,影响玩家体验(如战斗卡顿、登录超时)
|
|||
|
|
- **处理流程**:立即回滚/热修 → 事故复盘 → 预防措施
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. 性能监控
|
|||
|
|
|
|||
|
|
### 2.1 服务端监控
|
|||
|
|
|
|||
|
|
| 监控项 | 工具 | 频率 |
|
|||
|
|
|--------|------|------|
|
|||
|
|
| API 延迟分布 | Nakama 内置 + Prometheus | 实时 |
|
|||
|
|
| 战斗结算耗时 | 自定义打点 | 实时 |
|
|||
|
|
| DB 慢查询 | PostgreSQL pg_stat_statements | 每小时 |
|
|||
|
|
| 内存/CPU/连接数 | Node exporter + Grafana | 实时 |
|
|||
|
|
| 异常/error 日志 | ELK / Loki | 实时 |
|
|||
|
|
|
|||
|
|
### 2.2 客户端监控
|
|||
|
|
|
|||
|
|
| 监控项 | 方式 | 频率 |
|
|||
|
|
|--------|------|------|
|
|||
|
|
| FPS | Cocos 内置 stats | 实时 |
|
|||
|
|
| 内存占用 | 系统 API | 每 5 秒 |
|
|||
|
|
| 网络延迟 | Ping 服务端 | 每 30 秒 |
|
|||
|
|
| 崩溃率 | 崩溃上报 | 实时 |
|
|||
|
|
| 卡顿帧数 | 帧时间 > 33ms 计数 | 实时 |
|
|||
|
|
|
|||
|
|
### 2.3 性能报告
|
|||
|
|
|
|||
|
|
- **日报**:关键指标汇总(平均延迟、P95、错误率、崩溃率)
|
|||
|
|
- **周报**:趋势分析,识别性能退化
|
|||
|
|
- **月报**:容量规划,预测是否需要扩容
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. 性能优化原则
|
|||
|
|
|
|||
|
|
| 原则 | 说明 |
|
|||
|
|
|------|------|
|
|||
|
|
| 延迟优先于吞吐量 | 玩家体感延迟比 QPS 更重要 |
|
|||
|
|
| 预计算 > 实时计算 | 能离线算的不在线算 |
|
|||
|
|
| 缓存 > 查询 | 热点数据走 Redis/Valkey |
|
|||
|
|
| 批量 > 单条 | 数据库操作尽量批量 |
|
|||
|
|
| 异步 > 同步 | 非关键路径走消息队列 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 4. 性能测试要求
|
|||
|
|
|
|||
|
|
| 测试类型 | 频率 | 环境 |
|
|||
|
|
|----------|------|------|
|
|||
|
|
| 单元性能测试 | 每次 PR | CI |
|
|||
|
|
| 战斗并发测试 | 每周 | Staging |
|
|||
|
|
| 全链路压测 | 每月 | Staging |
|
|||
|
|
| 客户端性能测试 | 每次发版 | 真机 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 5. 版本记录
|
|||
|
|
|
|||
|
|
- **v1.0**(2026-07-08): 初始版本,覆盖性能红线、监控、优化原则、测试要求
|