tencent cloud

腾讯云超级应用服务

其他

Download
聚焦模式
字号
最后更新时间: 2026-08-14 15:29:13

小游戏性能快照查询

SuperApp 开发者可以通过 TmfMiniSDK.queryPerformance 接口查询正在运行的小游戏的实时性能快照,返回内存、CPU、渲染帧率、加载耗时、下载流量等指标。

接口定义

/**
* 查询正在运行的小游戏的实时性能快照。仅支持小游戏引擎。
*
* @param appId 小游戏 appId
* @param callback 性能快照回调
*/
public static void queryPerformance(String appId, MiniCallback<PerformanceSnapshot> callback)

PerformanceSnapshot 字段说明

基础信息

字段
说明
appId
小游戏 appId
pid
小游戏所在进程 pid
pkgVersion
小游戏版本
sdkVersion
SDK 版本号
baseLibVersion
基础库版本号

加载耗时

字段
说明
requesttimeMs
拉取小游戏配置信息的网络耗时
loadtimeMs
从点击到逻辑层就绪(含基础库加载 + 代码注入)
readytimeMs
从点击到首屏渲染就绪(首帧出现)

内存

字段
说明
memoryCurrentKb
当前内存(KB)
memoryAvgKb
平均内存(KB)
memoryPeakKb
峰值内存(KB)
memoryGrowthKb
内存增长量(KB)

CPU

字段
说明
cpuAvg
平均 CPU 占用(%)
cpuPeak
峰值 CPU 占用(%)
cpuCurrent
当前 CPU 占用(%)

渲染

字段
说明
fpsAvg
平均帧率(每秒采样一次当前帧率,取会话内所有采样的算术平均值)
fpsVariance
帧率方差(对最近至多200个每秒 fps 采样计算的总体方差Σ(fps - mean)² / n,非标准差,单位为 fps²)。方差越大表示帧率抖动越剧烈、画面越不稳定;数值本身不等于帧率损失)
jankCount
卡顿次数(某一帧同时满足耗时大于前3帧平均的2倍且耗时大于83.3ms 时记一次 jank)
bigJankCount
严重卡顿次数 (某一帧同时满足耗时大于前3帧平均的2倍且耗时大于125ms 时记一次 bigJank)

下载与运行时长

字段
说明
downloadRecords
本次运行期内所有下载记录,按 `module`去重(保留最后一次),默认空列表
module:分包名字
flowBytes:下载流量
costMs:下载耗时
runningDurationMs
前台运行时长(毫秒)

使用示例

TmfMiniSDK.queryPerformance(appId, (code, msg, snapshot) -> {
if (code == MiniCode.CODE_OK && snapshot != null) {
Log.i(TAG, "fpsAvg=" + snapshot.fpsAvg
+ ", memoryCurrentKb=" + snapshot.memoryCurrentKb
+ ", cpuAvg=" + snapshot.cpuAvg);
} else {
Log.w(TAG, "queryPerformance failed, code=" + code + ", msg=" + msg);
}
});

使用注意事项

1. 仅小游戏有效:只有小游戏引擎会采集这些指标,普通小程序调用返回 C_CLIENT_MINI_APP_NOT_SUPPORT
2. 实时快照,非精确统计:返回的是查询时刻的即时快照,不代表整段运行的精确统计。均值/方差/峰值等指标随采样点累积,运行时间越短、样本越少,代表性越弱。
3. 需运行一段时间才有数据:内存/CPU 采样心跳每10秒一次,fps/jank 每秒采集一次。刚启动或前台运行不足数秒时,fpsVariance、峰值、方差等可能为 0 或不具参考价值。
4. fpsVariance 是方差不是标准差:单位为 fps²,量纲与帧率不同,不能直接与 fpsAvg 相加减;仅用于横向比较帧率稳定性。窗口上限200个样本(约 200 秒),更早的采样会被覆盖。
5. jankCount / bigJankCount 是累计值:为本进程生命周期内累加,跨前后台切换不重置。若要观察某段时间的卡顿增量,需业务方自行对两次查询结果做差。
6. 卡顿判定由引擎定义jank(帧耗时 >83.3ms 且相对前 3 帧突增)/ bigJank(>125ms)的阈值由 MagicBrush 引擎实现,可能随引擎版本调整;建议以趋势对比为主,不要对阈值本身做硬编码依赖。
7. 回调线程不保证在主线程:主进程查询走 IPC,回调可能在非 UI 线程;更新 UI 请自行切回主线程。
8. 单次查询开销可控但非零:查询会触发一次 PSS 读取和一次 CPU 差分采样,避免高频轮询(如每帧调用),建议按秒级或更低频率查询。


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈