跳到主要内容

状态栏(Status Bar)

预览窗口(rive <dir>)默认会在底部显示一条状态栏。它是场景下方一条 28 point 高的条带。场景布局在它上方,因此状态栏不会遮挡内容;窗口会按条带高度变高,画板尺寸保持不变。

各项统计每秒刷新两次,每次取这半秒的平均值。点击状态栏上某个指标的标签,即可跳到本页对应章节。

状态栏只在实时窗口中绘制。它不会出现在截图、--bench 或任何其他无界面运行中。

FPS​

窗口每秒实际呈现的帧数。受显示器刷新率限制:大多数显示器为 60,ProMotion 显示器最高可达 120。

FRAME​

帧与帧之间的平均间隔,单位为毫秒。能跟上的 60 Hz 显示器会显示 16.7 ms。FRAME 明显高于显示器间隔,说明正在丢帧。

ADVANCE​

每帧推进场景所用的 CPU 时间。涵盖状态机、动画、布局、数据绑定,以及脚本的 advance 和 update 调用。在含脚本的内容中,这通常是卡顿的原因。

播放暂停时,ADVANCE 显示为短横线,状态栏显示 PAUSED。在终端用 p 切换播放。

RECORD​

记录本帧绘制命令所用的 CPU 时间。渲染是延迟的:主线程记录命令,渲染线程再把它们回放到 GPU。RECORD 只包含记录过程,因此不包括 GPU 时间和呈现时间。

HEAP​

文件脚本所拥有的内存。一个文件运行在一个脚本 VM 上,因此 HEAP 报告的是它正在使用的那一个:

VMHEAP 表示
AnimaScript模块 wasm 线性内存的大小。它只会增长、不会缩小,因此是高水位而不是实时分配量
Luau垃圾回收器的堆

短横线表示该文件没有脚本。

当运行时警告脚本堆在持续增长(通常意味着泄漏或无界缓存),或存在泄漏的句柄时,HEAP 会变成琥珀色。详情见终端日志。

MEM​

整个进程的内存,按操作系统的统计方式:

平台MEM 表示
macOS物理占用(physical footprint),与活动监视器 内存 列的数字相同
Linux常驻内存(Resident memory)
Windows私有字节(Private bytes)

MEM 包含 HEAP,再加上运行时、画板、图像、字体和 GPU 驱动分配,以及 CLI 自己的编译器和文件监视器。因此它会远大于同一文件在应用内的占用。用它来观察随时间的增长,而不是当作绝对预算。

VM​

脚本 VM 及其运行层级:

显示含义
AOT提前编译,已优化
AOT -O0提前编译,未优化
INTERPWebAssembly 解释器,比 AOT 慢许多倍
LUAULuau VM

短横线表示该文件没有脚本。

实时窗口中的脚本计时会慢于发布后的文件,因为实时窗口的开发构建会为看门狗计量每一个循环。要给脚本计时,请使用 rive <dir> --bench=N,它使用发布构建。

账户与套餐​

状态栏右侧显示你的账户:

你的状态状态栏显示
已登录@USERNAME,链接到账户页
已登录且为免费套餐@USERNAME、FREE PLAN 以及 UPGRADE 按钮
未登录NOT SIGNED IN 和 UPGRADE

隐藏状态栏​

付费套餐可以用以下任一方式隐藏状态栏:

位置方法
窗口打开时的终端输入 b
命令行传入 --no-status-bar
rive.yaml设置 window.statusBar: false
rive.yaml
window:
statusBar: false

免费和未登录账户始终会看到状态栏。

看完还有疑问?进群交流下!
与众多 Rive 创作者、开发者一起交流探讨与答疑解惑。
加入交流群