微型分析器是Roblox Studio和Roblox客户端中的性能优化和故障排除工具。它提供了详细的可视化时序信息,涵盖在一帧中运行的所有引擎任务,例如角色动画、物理更新、脚本执行和几何体渲染。您可以识别在哪一帧中运行了哪些任务,这些任务的运行时间,以及它们是否导致您错过了帧时间目标。
帧时间
要使用微型分析器,您必须了解帧时间和帧率之间的关系。
- 帧时间是指一帧在屏幕上渲染所花费的时间,通常以毫秒为单位测量。
- 帧率是指在屏幕上渲染的帧数,通常以每秒帧数(FPS)为单位测量。
较低的帧时间意味着更高的帧率。将1000毫秒(1秒)除以帧时间以获取帧率。
| 平均帧时间 | 每秒帧数 |
|---|---|
| 33.33 ms | 30 FPS |
| 16.67 ms | 60 FPS |
| 8.33 ms | 120 FPS |
| 4.17 ms | 240 FPS |
然而,顺畅的游戏体验不仅仅需要高帧率。您需要一致的帧时间。例如,如果59帧在10毫秒内到达,而一帧在410毫秒内到达,玩家会感觉到巨大的、突兀的卡顿,即使游戏的帧率达到60 FPS。如果所有帧的渲染时间大致相同,您的游戏会因为这种一致性而感觉更平滑,尤其是在较低的帧率下。
微型分析器完全专注于帧时间。它的目的是帮助您识别帧时间的突发及其原因。
打开微型分析器
打开微型分析器的方法因平台而异:
在移动客户端上,打开设置菜单并将微型分析器切换为开启。然后,从同一网络上的开发机器中,使用您的网络浏览器导航到提供的IP地址和端口。

此屏幕截图显示了IP地址为172.18.56.105和端口为1338,因此您应该导航到172.18.56.105:1338。根据您设备的网络配置,您可能会看到多个IP地址。如果一个不起作用,可以尝试下一个。
在桌面客户端上,按CtrlF6(⌘F6)。
在Studio中,按CtrlF6(⌘F6)。
一般来说,移动客户端是分析您游戏性能的最佳地方。绝大多数Roblox的玩家使用手机和平板电脑,这些设备在性能上存在严重的热量和电力限制。如果您的游戏在中档Android平板电脑上运行良好,它在游戏桌面上几乎肯定会表现得更好。
微型分析器基础
微型分析器有两个关键组件:帧时间条形图和详细任务时间线。
- 帧时间图位于界面的顶部,显示每帧渲染所用的时间。柱子越高,帧时间越长。
- 时间线显示在帧中运行的所有单个任务。较宽的条形表示任务运行所需的时间更长。
在微型分析器中的典型工作流程是使用帧时间图来识别突发(较高的柱子),然后使用时间线来确定哪些任务导致了突发。然后,您可以查看标签参考以获取该任务的信息以及如何改善其性能。

帧时间图
每个柱子的高度表示完成该帧所需的毫秒数。最近的帧在右侧。将鼠标悬停在一帧上可以查看有关CPU和GPU使用的一些基本信息。

蓝色条形是渲染墙时间超过作业墙时间的帧。在这些帧中,主渲染线程所需的时间超过了任何工作线程的时间。
如果游戏没有达到您的帧时间目标,并且有大量蓝色帧,这表明存在渲染瓶颈。常见原因包括过多的物体密度、物体移动和光照。请参见提高性能。
红色条形是满足两个条件的帧:
- 渲染墙时间超过作业墙时间
- GPU等待时间大于2.5毫秒
红色条形比橙色和蓝色的情况少见,通常是过于复杂的对象、纹理大小和视觉效果的结果。优化方法与蓝色条形相似。请参见提高性能。
帧末尾的小任务有时会影响作业墙时间和渲染墙时间,这就是为什么更多地关注帧时间而不是帧颜色是个好主意。没有“好的”颜色可以追求。橙色、蓝色和红色的混合并不成问题,只要您达到帧时间目标。如果您未能达到帧时间目标,这些颜色可以指示优化的位置。
时间线
左键单击并拖动以平移时间线。在拥有许多CPU核心的机器上,您可能需要大幅向上或向下平移以查找执行特定任务的线程。

滚动可缩放时间线。结合时间线顶部的毫秒标签,您可以感知到任务的绝对耗时,也可以感知到与其他任务的相对耗时。

条形图上的绿色覆盖指示时间线上当前可见的帧数——您的缩放级别。左键单击一帧条形可跳转到时间线上的该位置。
您可能需要调整缩放级别,但将鼠标悬停在条形上会突出显示时间线上的帧。浅灰色线条划分帧。

直接位于另一标签下方的标签表示作为更高层次任务一部分执行的任务。
通常,您希望排除表现最差的子任务,而不是父任务;父任务的耗时不能短于其子任务的总和。
右键单击标签,可将时间线缩放至该任务的确切持续时间。
如果信息量过大,可以使用组或线程菜单过滤时间线。例如,您可能只想查看主线程中的渲染任务。

使用CtrlF(⌘F)跳转到耗时最长的任务在转储中的出现。例如,computeLightingPerform在每个客户端帧中运行。如果您在包含128帧的转储中搜索它,可以跳转到它耗时最长的帧。
线程
像许多程序一样,Roblox使用多个线程同时执行任务序列。微型分析器在时间线的左侧显示线程名称。

有三种重要的线程类型:
主线程("RBX Main"):处理基于CPU的渲染任务。处理输入、Humanoids、动画/插值、物理所有权、音频和等待脚本恢复。还更新Studio界面并协调其他线程。
工作线程("RBX Worker"):帮助主线程处理网络、物理和路径寻找。由于现代CPU中的核心数量,您可能会有许多工作线程,其中大多数在任何给定时刻处于休眠状态。
渲染线程("GPU"):遵循"准备、执行、呈现"的逻辑。与设备的图形处理单元(GPU)进行通信。
- 准备:使用主线程的信息更新渲染模型。
- 执行:发出渲染命令,包括2D界面。
- 呈现:与GPU同步。
自定义脚本分析
如果您的脚本正在运行复杂任务,可以分析代码的关键部分,确保它们不会花费过长时间。用debug.profilebegin()与debug.profileend()包裹代码,以计时所有在这两个函数调用之间完成的内容,并在微型分析器的时间线中创建一个标签。
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("辛苦工作")
-- 示例辛苦工作:交换两个变量200,000次
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
根据它在时间线上的持续时间,您可以判断该功能与其他任务相比使用了大量处理时间。
使用助手分析捕获
在Studio中,您可以请求助手自动分析暂停的微型分析器捕获,以识别性能瓶颈并提出修复建议。
- 在Studio中,使用CtrlF6(⌘F6)打开微型分析器。
- 当您发现帧时间尖峰时,通过在顶部菜单中按暂停或使用CtrlP(⌘P)来暂停捕获。
- 打开助手并请其分析捕获。示例提示包括:
- "我在微型分析器中捕获了帧时间尖峰-分析它。"
- "是什么导致了尖峰?"
- "它是物理限制还是脚本限制?"
- "哪个类别的独占时间最长?"
- "当我在停机坪时,FPS下降。重现这个问题,使用微型分析器找到原因,修复它,并重新测试。"
助手通过微型分析器API读取暂停的捕获,并返回关于可能的瓶颈的报告,以及可以应用的建议脚本或场景更改。
该功能也可通过Studio MCP服务器使用,因此您可以将微型分析器分析集成到自己的AI代理或智能循环中,以自动反馈新更改对您游戏性能的影响。
保存帧数据
如果您想保存一组帧数据以供以后审查(或与其他人分享),请使用保存到文件按钮。微型分析器将帧数据保存到名为microprofile-<date>-<time>.html的独立HTML文件中。

在桌面客户端或Studio中,使用转储菜单。在这两种情况下,微型分析器会自动将文件保存到Roblox日志目录:
在Windows上,检查%LOCALAPPDATA%\Roblox\logs。
如果您使用的是通用Windows平台(UWP)应用,请检查\Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\。
在macOS上,检查~/Library/Logs/Roblox。
服务器分析
除了分析客户端,您还可以捕获简短的服务器活动转储:
在桌面客户端中,加入您有编辑权限的游戏。
使用CtrlF9(⌘F9)打开开发者控制台。
在下拉菜单中选择微型分析器。
在服务器选项卡中,指定要捕获的帧数(最大60)和在开始捕获之前延迟的秒数(最长4秒)。
仅限网页的功能
微型分析器有两种用户界面:网页UI(移动设备和转储)和桌面UI(客户端和Studio)。我们建议在可能的情况下使用网页UI。一般来说,两者的工作方式相似,但网页UI有一些额外功能:
使用X射线菜单启用或禁用内存分配的颜色编码。

- 主条形图中的较浅帧表示更高的内存分配。
- 预览条的较浅部分和时间线上的较浅标签表示帧的内存分配较高部分。
- 在X射线模式下,按C显示内存分配的总大小,而不是分配的数量。
使用导出菜单导出CPU或内存火焰图,这是一种特殊的可视化,聚合转储中包含的所有调用堆栈,保持父子层次结构,并根据持续时间进行缩放。火焰图特别有助于识别不会导致您错过帧时间目标的任务(因此很难注意到),但运行频率非常高,以至于它们的处理时间变得显着。

您还可以在Studio中创建火焰图,但仅限于脚本(执行时间和内存分配)。与基于网页的火焰图相比,Studio中的火焰图是自顶向下而不是自底向上,并支持更长的捕获时间。

将第二个转储文件拖放到网页UI中以生成差异火焰图,这可以帮助您识别随着时间的推移您游戏性能的改进或回归。单击合并和比较以导出新的HTML文件。

差异火焰图突出显示消耗更多CPU或内存的转储(左侧或右侧),颜色越亮表示差异越大。

仅限桌面的功能
在桌面时间线中,左键单击标签可将其添加到右下角的折线图中。该图显示每帧任务的耗时。使用此图,您可以测试游戏中某些任务的性能。完成后,右键单击图表以隐藏它。

该图与主分析器条形图同步。当前所选的帧范围在图中以绿色突出显示。您还可以在图表上的任何地方单击,以重新调整主分析器视图到该特定帧,这对于在详细视图中查找尖峰很有帮助。
