You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.5 KiB
5.5 KiB
性能辅助打点解读说明(PF- 系列)
用途:线上灰度/全量后辅助验证加载、内存、流畅度优化效果。
不是运营打点:不进入 GravityuserAction广告/关卡漏斗;后台筛选PF-前缀 或平台原始日志里搜性能打点。
1. 为何与「看广告」统计分开?
历史问题:GEMgr.GEReportEvent 用 msg.indexOf('AD') 判断是否广告,会把下列内容误判为广告:
- 机型含 Android / iPad(子串
AD) - 资源快照
…P12A456…(A与D相邻的极端情况) - 昨日性能文案
内存预载-…走inLevel进了 Gravity
本次修复:
| 项 | 做法 |
|---|---|
| 广告识别 | 仅 -AD- 或含「广告」 |
| 性能上报 | 新通道 gg.sdk.reportPerf(),前缀 PF-,不进 Gravity |
| 旧性能文案 | 已从 reportDY('inLevel', …) 迁出 |
2. 消息格式
PF-{域}-{标签}-{详情}
- 全文不得使用域标签
LOAD(LAD 子串);加载域用LD - 详情禁止
-AD-、「广告」、机型原文 - 详情用
_连接键值,资源快照固定为b{bundle}p{pkg}a{asset}r{preloaded}
域一览
| 域 | 含义 | 频率 |
|---|---|---|
BOOT |
启动分级 | 每会话 1 次 |
LD |
加载耗时(勿用 LOAD,含 AD 子串) | 见子标签 |
PRE |
预载完成 | 有冷却 |
MEM |
内存告警/降档 | 有冷却 |
THRM |
帧率/发热策略 | 相位变化,30s 冷却 |
SESS |
会话段落结束快照 | 有冷却 |
3. 事件清单与解读
3.1 启动分级 PF-BOOT-TIER-…
示例:PF-BOOT-TIER-mtier0_ttier0_qm_d3_c12
| 字段 | 含义 |
|---|---|
m* |
内存档位 MemoryProfile:tier0/1/3 |
t* |
发热档位(与内存 tier 对齐) |
q* |
画质档位 DeviceProfile:ql/qm/qh |
d* |
登录天数 |
c* |
当前章节进度 |
怎么看:对比不同 m/t/q 组合下的加载、内存告警率;优化后同机型 tier 分布应更稳定。
3.2 加载 PF-LD-*(Load 缩写 LD,避免 LOAD 中的 AD 子串)
| 标签 | 示例 | 含义 |
|---|---|---|
SDK |
PF-LD-SDK-3s |
SDK+存档初始化耗时(会话 1 次) |
RES |
PF-LD-RES-8s |
Boot 资源包加载(会话 1 次) |
HALL |
PF-LD-HALL-5s |
进可交互大厅耗时 |
BTL |
PF-LD-BTL-ch12_6s |
进战斗可交互耗时,ch+章节 id |
怎么看:
- P50/P90 是否下降(重点关注
LD-BTL、LD-HALL) - 同一章节
ch*优化前后对比 SDK/RES只在冷启动看一次,别按对局频率算
3.3 预载 PF-PRE-*
| 标签 | 示例 |
|---|---|
HALL |
PF-PRE-HALL-8s_b3p12a456r78 |
CH |
PF-PRE-CH-ch12_15s_n42_b3p12a78 |
| 字段 | 含义 |
|---|---|
*s |
预载耗时(秒,至少 1) |
n* |
章节预载资源条目数(仅 CH) |
b/p/a/r |
完成时刻 bundle 数 / pkg 数 / asset 数 / 已预载 key 数 |
怎么看:耗时与 b/p/a/r 是否同向变化;优化后应用更少 a/r 或更短 *s 达到相同体验。
3.4 内存 PF-MEM-*
| 标签 | 示例 | 触发 |
|---|---|---|
WARN |
PF-MEM-WARN-ph3_w2_lv2_b5p10a500r80 |
平台 onMemoryWarning |
DG |
PF-MEM-DG-lv1_ph2 |
降档 D1/D2 生效 |
相位 ph*:0启动 1大厅 2大厅预载 3战斗 4战斗退出 9其它
| 字段 | 含义 |
|---|---|
w* |
当前相位内第几次告警 |
lv* |
降档级别 0/1/2 |
怎么看:
MEM-WARN占比高 → 内存仍紧,看ph3是否集中(战斗中)- 出现
MEM-DG-lv2→ 已触发停 silent 预载 + 大厅 30fps,需结合THRM-FPS看
3.5 流畅度 PF-THRM-FPS-…
示例:PF-THRM-FPS-ph1_fps45_s0
| 字段 | 含义 |
|---|---|
ph* |
ResourcePhase(见上表,与 MEM 略有不同:Boot=0) |
fps* |
实际设置的目标帧率 |
s* |
内存 stress 级别 0/1/2 |
怎么看:
- 大厅
ph1/ph2应为 45(tier0 配置),战斗ph3应为 60 s1/s2出现时 fps 是否降到 30(D2 大厅压帧)
3.6 会话段 PF-SESS-END-…
示例:PF-SESS-END-hall_b3p12a400r60
| 值 | 含义 |
|---|---|
hall |
回到大厅完成 |
battle_exit |
战斗 teardown 开始 |
末尾快照同 b/p/a/r,用于看离开战斗后资源是否回落。
4. 后台怎么筛(给策划/运营)
- 事件流 / 原始日志搜索:
PF-或性能打点 - 不要用「广告次数」面板看这些(已隔离)
- 建议按天导出后 Excel 透视:
- 行:事件域(BOOT/LOAD/MEM…)
- 值:次数、平均耗时(从
*s解析)
5. 两天线上看什么算「有效」
| 指标 | 期望趋势(相对优化前) |
|---|---|
LD-HALL / LD-BTL P90 |
下降或持平 |
MEM-WARN 人均次数 |
下降 |
MEM-DG-lv2 占比 |
下降 |
PRE-HALL 的 a/r |
下降或持平而耗时不变 |
THRM-FPS 战斗 ph3=60 占比 |
稳定高位 |
6. 代码入口(程序)
- 统一模块:
assets/script/game/PerfReport.ts - 上报 API:
gg.sdk.reportPerf(msg)(SDKManager.ts) - 运营打点仍用:
gg.sdk.reportDY('inLevel', msg)(勿混用)
新增性能点必须:
- 走
PerfReport封装,不要直接reportDY - 域标签禁止
LOAD(含 AD 子串);详情禁止-AD-/「广告」/机型原文 - 加会话去重或冷却,避免刷屏