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.
 
 
 
 
AdLike2048/docs/性能打点说明.md

5.5 KiB

性能辅助打点解读说明(PF- 系列)

用途:线上灰度/全量后辅助验证加载、内存、流畅度优化效果。
不是运营打点:不进入 Gravity userAction 广告/关卡漏斗;后台筛选 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. 后台怎么筛(给策划/运营)

  1. 事件流 / 原始日志搜索:PF- 或 性能打点
  2. 不要用「广告次数」面板看这些(已隔离)
  3. 建议按天导出后 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)(勿混用)

新增性能点必须:

  1. 走 PerfReport 封装,不要直接 reportDY
  2. 域标签禁止 LOAD(含 AD 子串);详情禁止 -AD-/「广告」/机型原文
  3. 加会话去重或冷却,避免刷屏