性能检测

阅读时间:2分钟更新于 2025-07-09 17:8

概述

为了确保动效在不同设备上都能以稳定的帧率运行,避免卡顿和延迟,需要在动效上线前检查运行时的性能瓶颈,避免资源浪费和过度消耗。通过性能检测插件,开发者可以识别和解决潜在的性能问题。

基本使用

1、安装依赖

需要额外接入 插件(请确保插件版本号与 @galcean/effects 版本号一致)。

$ npm i @galacean/effects-plugin-stats --save

2、使用示例

import { Stats } from '@galacean/effects-plugin-stats';

// ...播放器创建代码
// player 为播放器对象
new Stats(player);
// ...业务代码

效果

如上图所示,从上到下分别表示帧率、内存占用(真机不生效)、绘制调用、三角面数、图片数量、Shader 数量、渲染程序数量、WebGL 版本(通常主要关注前四项)。画面稳定性看帧率,当帧率小于 30 时,画面会出现明显卡顿。其他不做强制要求,当然也是数量越少对动效流畅度越友好,当出现卡顿时,可以选择减少粒子数量、图层数量等缓解。

推荐指标

下面给出 Unity 在游戏中低高端画质推荐设置对应了动效中的中低高端机型设置。


低端机

中端机

高端机

FPS(帧率)

30

45

60

DrawCall(绘制调用)

70

110

150

Triangles(三角面数)

4w

10w

15w

主要数据来源:UWA Day 2024

进阶

你可以自定义 Stats 组件的 onUpdate 方法,用于在每帧更新时获取性能数据:

const stats = new Stats(player, { visible: false });
const [_, component] = await Promise.all([
  player.loadScene(json),
  stats.getComponent(),
]);

component?.monitor.on('update', data => {
  console.info(data);
});

此方法在 >= 2.5.0 版本提供。

Preview