微型分析器是在 Roblox Studio 和 Roblox 客戶端中的性能優化和故障排除工具。它提供了有關在幀期間運行的所有 引擎任務 的詳細視覺時間信息,例如角色動畫、物理更新、運行腳本和渲染幾何圖形。您可以識別哪些任務在某幀期間運行,這些任務花了多少時間,以及是否有任務使您未能達到幀時間目標。
幀時間
要使用微型分析器,您必須理解 幀時間 和 幀率 之間的關係。
- 幀時間是幀渲染到螢幕上所花的時間,通常以毫秒為單位測量。
- 幀率是渲染到螢幕上的幀數,通常以每秒幀數(FPS)進行衡量。
較低的幀時間意味著較高的幀率。用 1,000 毫秒(1 秒)除以幀時間來獲得幀率。
| 平均幀時間 | 每秒幀數 |
|---|---|
| 33.33 毫秒 | 30 FPS |
| 16.67 毫秒 | 60 FPS |
| 8.33 毫秒 | 120 FPS |
| 4.17 毫秒 | 240 FPS |
不過,為了流暢的遊戲體驗,擁有高幀率是不夠的。您需要 一致的幀時間。例如,如果 59 幀在 10 毫秒內到達,而一幀則在 410 毫秒內到達,即使遊戲以 60 FPS 運行,玩家也會感知到巨大的卡頓感。如果所有幀在渲染中所需的時間大致相同,則因為這種一致性,遊戲會顯得更流暢,尤其是在較低的幀率下。
微型分析器完全專注於幀時間。它的目的是幫助您識別幀時間峰值及其原因。
打開微型分析器
根據平台的不同,打開微型分析器的方式也不同:
在移動客戶端上,打開 設置 菜單並將微型分析器設置為 開啟。然後,使用您的 web 瀏覽器連接到與之相同網絡的開發機器,導航至提供的 IP 地址和端口。

此截圖顯示 IP 地址為 172.18.56.105,端口為 1338,因此您需要導航至 172.18.56.105:1338。根據您設備的網絡配置,您可能會看到多個 IP 地址。如果一個不起作用,請嘗試下一個。
在桌面客戶端上,按 CtrlF6 (⌘F6)。
在 Studio 中,按 CtrlF6 (⌘F6)。
一般而言,移動客戶端是分析您遊戲性能的最佳位置。大多數 Roblox 玩家使用手機和平板電腦,而這些設備在性能上受到了嚴重的熱量和電力限制。如果您的遊戲在中端安卓平板電腦上運行良好,它在遊戲桌面上的性能幾乎肯定會更好得多。
微型分析器基礎知識
微型分析器有兩個主要組件:幀時間條形圖和詳細任務時間線。
- 幀時間圖運行於界面的頂部,顯示每幀的渲染時間。條形較高表示幀時間較長。
- 時間線顯示在幀期間運行的所有個別任務。條形較寬表示執行時間較長的任務。
在微型分析器中的典型工作流程是使用幀時間圖識別峰值(較高的條形),然後利用時間線識別導致峰值的任務。然後,您可以檢查 標籤參考 以獲取有關該任務及如何提高其性能的信息。

幀時間圖
每個條形的高度表示完成該幀所需的毫秒數。較新的幀位於右側。將鼠標懸停在某幀上即可查看有關 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("Hard Work")
-- 示例繁重工作:互換兩個變數 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 或記憶體的轉儲(左或右),顏色越亮表示差異越大。

僅限桌面的功能
在桌面時間線上,左鍵單擊標籤將其添加到右下角的折線圖中。該圖顯示每幀任務所需的時間。使用這個圖,您可以測試遊戲中某些任務的性能。完成後,右鍵單擊圖表以將其隱藏。

這個圖與主要剖析器條形圖同步。當前選定的幀範圍在圖上用綠色高亮顯示。您還可以單擊圖表上的任意位置,以重新中心主要剖析器視圖到該特定幀,這對於在詳細視圖中查找峰值很有幫助。
