微型分析器

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡。

微型分析器是 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 運行。如果所有幀的渲染時間大致相同,您的遊戲將因為這種一致性而感覺更流暢,尤其是在較低的幀率下。

微型分析器完全專注於幀時間。它的目的是幫助您識別幀時間的峰值及其原因。

打開微型分析器

打開微型分析器的方式因平台而異:

  • 在移動客戶端上,打開設置菜單並將微型分析器更改為開啟。然後從同一網絡上的開發機器使用您的網頁瀏覽器導航到提供的 IP 地址和端口。

    移動設備上的微型分析器 UI。

    此截圖顯示 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("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 中,您可以請求助手自動分析暫停的微型分析器捕獲,識別性能瓶頸並提出修復建議。

  1. 在 Studio 中,使用 CtrlF6 (⌘F6) 打開微型分析器。
  2. 當您發現幀時間峰值時,通過按頂部菜單中的暫停或使用 CtrlP (⌘P) 暫停捕獲。
  3. 打開助手並請求它分析捕獲。示例提示包括:
    • "我在微型分析器中捕獲了幀時間峰值——分析它。"
    • "是什麼造成了峰值?"
    • "是受物理限制還是腳本限制?"
    • "哪個類別的獨佔時間最高?"
    • "當我在機庫中時,FPS 下降。重現問題,使用微型分析器找出原因,修復它,並重新測試。"

助手通過微型分析器 API 讀取暫停的捕獲,並返回有關可能的瓶頸的報告,以及您可以應用的建議腳本或場景更改。

此功能也可以通過Studio MCP服務運行,因此您可以將微型分析器分析集成到自己的 AI 代理或代理循環中,以獲得有關新更改如何影響遊戲性能的自動反饋。

保存幀數據

如果您想保存一組幀數據以供稍後查看(或與其他人分享),請使用保存到文件按鈕。微型分析器將幀數據保存到名為 microprofile-<date>-<time>.html 的獨立 HTML 文件中。

網頁 UI 中的保存到文件按鈕。

在桌面客戶端或 Studio 中,使用轉儲菜單。在這兩種情況下,微型分析器會自動將文件保存到 Roblox 日誌目錄:

  • 在 Windows 上,檢查 %LOCALAPPDATA%\Roblox\logs。

    如果您使用的是通用 Windows 平台(UWP)應用,請檢查 \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\。

  • 在 macOS 上,檢查 ~/Library/Logs/Roblox。

分析伺服器

除了分析客戶端,您還可以捕獲伺服器活動的簡短轉儲:

  1. 在桌面客戶端上,加入您有編輯權限的遊戲。

  2. 使用 CtrlF9 (⌘F9) 打開開發者控制台。

  3. 在下拉菜單中,選擇微型分析器。

  4. 在伺服器選項卡中,指定要捕獲的幀數(最多 60 幀)和開始捕獲前的延遲時間(最多 4 秒)。

  5. 點擊開始伺服器錄製。

    開發者控制台微型分析器屏幕。

    幾秒鐘後,開發者控制台提供文件的路徑,該路徑與標準轉儲的路徑相同。

僅限網頁的功能

微型分析器有兩個用戶界面:網頁 UI(移動和轉儲)和桌面 UI(客戶端和 Studio)。我們建議在可能的情況下使用網頁 UI。一般來說,這兩者的工作方式相似,但網頁 UI 有一些額外的功能:

  • 使用X 射線菜單啟用或禁用內存分配的顏色編碼。

    啟用 X 射線的微型分析器網頁視圖。
    • 主條形圖中較淺的幀表示更高的內存分配。
    • 預覽條的較淺部分和時間線上的較淺標籤表示幀中內存分配較高的部分。
    • 在 X 射線模式下,按 C 顯示內存分配的總大小,而不是分配的數量。
  • 使用導出菜單導出 CPU 或內存火焰圖,這是一種專門的可視化,聚合轉儲中包含的所有調用堆棧,保持父子層次結構,並根據持續時間進行大小調整。火焰圖特別有助於識別不會導致您錯過幀時間目標的任務(因此很難注意到),但運行頻繁以至於其處理時間變得顯著。

    微型分析器網頁 UI 中的火焰圖。

    您也可以在 Studio 中創建火焰圖,但僅限於腳本(執行時間和內存分配)。與基於網頁的火焰圖相比,Studio 中的火焰圖是自上而下的,而不是自下而上的,並支持顯著更長的捕獲時間。

    微型分析器在 Studio 中的火焰圖。
  • 將第二個轉儲文件拖放到網頁 UI 中以生成差異火焰圖,這可以幫助您識別隨著時間推移遊戲性能的改進或退步。單擊合併和比較以導出新的 HTML 文件。

    微型分析器差異火焰圖生成器,顯示左右兩側。

    差異火焰圖突出顯示消耗更多 CPU 或內存的轉儲(左側或右側),較亮的顏色表示更大的差異。

    微型分析器差異火焰圖。

僅限桌面的功能

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

顯示每幀任務所需時間的圖表。

該圖與主分析器條形圖同步。當前選定的幀範圍在圖表中以綠色突出顯示。您還可以單擊此圖表上的任何位置,將主分析器視圖重新集中到該特定幀,這對於在詳細視圖中查找峰值非常有幫助。

搜索詳細視圖

在桌面客戶端上,您可以在詳細視圖中按名稱搜索任務:

  1. 使用 CtrlF6 (⌘F6) 打開微型分析器並切換到詳細模式。

  2. 按 CtrlF (⌘F) 打開搜索框。

  3. 輸入任務或標籤名稱的一部分。匹配不區分大小寫,並在名稱中的任何位置找到文本。匹配的標籤保持其顏色,所有其他標籤變暗。包含匹配的幀在幀時間圖中突出顯示。

  4. 在匹配之間移動:

    操作快捷鍵
    下一個匹配F3 或 Enter
    上一個匹配ShiftF3 或 ShiftEnter

    您還可以單擊搜索框旁邊的 < 和 > 按鈕。當前匹配的標籤被輪廓和三角形標記,並且計數器如 12 / 340 顯示其在所有匹配中的位置。如果匹配不在屏幕上,時間線會滾動到它。如果您已經平移了時間線,導航將從當前可見的匹配開始。

  5. 按 Esc,或再次按 CtrlF (⌘F),以關閉搜索。關閉搜索不會關閉微型分析器。

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。