微型偵測器

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

微型調試器 是 Roblox Studio 和 Roblox 客戶端中可用的性能優化和故障排除工具。它提供詳細的時間信息 для 任務排程器 任務稱為 標籤 的任務。

微型調查器基礎

要開啟微型調試器,請在 Studio 或客戶端按下 Ctrl Alt F6 ( F6 ) 。您也可以在客戶端使用設置選單。

開啟時,菜單欄會出現在 3D 視角的頂部。在預設模式下,移動條圖會顯示任務排程器的每個框架所使用的時間。

The Microprofiler frame graph, showing blue frames and detailed frame information.

條應該通常在圖的中間,但你可能會看到突然的尖峰(值快速增加)。尖峰表示需要更多時間來執行某個任務,通常是因為工作量增加所造成的。例個體、實例,創建大量移動部件需要更多物理模擬工作,然後需要更多時間來處理運動和零件聯繫。下面的圖像顯示了尖刺的例子:

The Microprofiler with several bars higher than others.

若要暫停記錄框架,請按下 Ctrl P ( P ) 或點擊選單欄中的 暫停 。暫停時,時間線出現,您可以通過單擊或拖動圖表瀏覽框架。

要完全摘要各種觀點以及如何導航 MicroProfiler 介面,請參閱 MicroProfiler 模式

線程

像許多程式一樣,Roblox 使用多個線程一次執行多個任務順序。在微型調試器 詳細模式 中,您可以在左側看到每個線程的標籤。

The lefthand side of the Microprofiler detailed view, with rows for threads.

有三種主要線程類型:

  • 主要/渲染 :可能是不直覺的,在 CPU 上運行。處理輸入、Humanoids、動畫/過渡、物理擁有權、聲音和等待腳本重新啟動。也更新工作室介面並協調其他線程。

  • 工作者 ("RBX 工作者"):幫助主線路與網路、物理和路徑尋找。由於現代 CPU 的核心數量,你可能會有許多工作線程,其中大多數都會在任何時候處於睡眠狀態。

  • 渲染 ("GPU"):遵循「準備、執行、呈現」邏輯。與裝置的圖形處理單元(GPU)進行通信。

    • 準備:來自主線程的資訊用於更新渲染模型。
    • 執行:發出問題渲染指令,包括 2D 介面。
    • 現在:與 GPU 同步。

自訂個人檔案

如果您的腳本執行複雜的任務,您可以評估代碼的關鍵部分,以確保它們不會花太長時間。將代碼包裝在 debug.profilebegin()debug.profileend() 中,將所有功能呼叫之間的所有工作都完成,並在微型調試器時間線上創建標籤。

勞力腳本

debug.profilebegin("Hard Work")
-- 要進行分析的代碼
debug.profileend()
A custom label on the detailed view of the MicroProfiler.

微型調試器標籤可使用的記憶有限。如果此記憶耗盡,自訂偵測標籤可能不會在時間線中顯示為具有意義的名稱。使用較少的標籤來避免這個問題。如果您不再需要對代碼的某部分進行個人化,則可以停用或移除這些函數的呼叫。

範例

下面的代碼樣本連接一個假函數到 RunService.PreSimulation 事件,該事件每一個框架都會運行。任何執行此操作的東西通常都應盡可能高效地運行,因此此功能是一個很好的候選人來進行個人化。


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)

當您執行體驗並暫停微型調試器 ( Ctrl P P )時,自訂標籤會在 遊戲步驟 標籤下顯示。

Many labels on the MicroProfiler, with a custom label taking up the majority of the processing time.

從時間線上的持續時間來看,你可以告訴自己功能正在使用大量的處理時間,與其他操作相比。

儲存框架資料

如果您想保存一組框架資料供稍後查看(或與其他人分享),請使用 卸下 選單。引擎會將框架資料儲存到 Roblox 記錄目錄中的一個名為 microprofile-<date>-<time>.html 的文件中。

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

    如果您使用 Universal Windows Platform (UWP) 應用程App,請檢查 \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\

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

這些 HTML 文件使用相同的 網頁介面行動裝置的實時連線伺服器卸貨

個人檔案行動裝置

若要從行動客戶端存取微型調試器,您的行動裝置必須連接到與開發機相同的 網路

在手機裝置的 設定 選單中啟用微型調試器。啟用後,選單會顯示一個 IP 地址和一個端口號碼。

A picture of the Settings menu on mobile, showing how to enable the MicroProfiler.

例如,在上面的截圖中,地址是 192.168.1.166 和端口是 1338 。從同一網絡上的電腦導航到http://192.168.1.166:1338以獲得基於網頁的版本的MicroProfiler用戶界面。

The MicroProfiler web view.

評估伺服器

除了標準客戶微型調查器外,您還可以使用伺服器微型調查器來取得伺服器活動的簡短偵測。

  1. 在你擁有編輯權限的體驗中,使用 CtrlAltF9 開啟開發者控制台。

  2. 在下拉選單中,選擇 微型調試器

  3. 伺服器效能分析器 部分,指定每秒的幀數(最大60)和要評估的秒數(最大4)。

  4. 點擊 開始錄製

    The Developer Console MicroProfiler screen.

    幾秒鐘後,開發者控制台提供到文件的路徑,這與一個 標準卸貨 相同的路徑。

使用網頁介面

一般來說,微型調試器網頁介面與 詳細模式 相似,但它有一些額外功能:

  • 除了依據群組過濾外,您還可以依據線程過濾。

  • 使用 Ctrl F / F 跳到垃圾桶中最多時間的任務發生點。例如, computeLightingPerform 在每個框架中運行。如果您在垃圾桶中搜索它的 128 個框架,您可以跳到需要最長時間完成的框架。

  • 使用 X射線 選單啟用或禁用記憶配置的顏色編碼。

    The MicroProfiler web view with x-ray enabled.
    • 主條圖內的較輕的框架表示更高的記憶配置。
    • 預覽欄的較輕部分和時間線上的較輕標籤表示具有更高記憶配置的框架部分。
    • 在X射線模式下,按C顯示記憶配置的總大小,而不是配置數量。
  • 使用 匯出 選單將CPU或記憶火焰圖匯出,這是一種專門的視覺化,會將包含在卸傾印中的所有呼叫堆聚合在一起,維持父子階層關係,並根據時間尺寸它們。火焰圖特別適合用於識別不需要特別長時間運行的任務(因此很難注意),但運行得如此頻繁,其處理時間變得相當重要。

    The MicroProfiler flame graph in the web UI.

    您也可以在 Studio 中創建火焰圖,雖然只適用於腳本(執行時間和記憶配置)。與網頁基礎的火焰圖相比,Studio 中的火焰圖是從上到下,而不是從下到上,並支持捕捉時間更長。

    The MicroProfiler flame graph in Studio.
  • 將第二個廢棄檔案拖放到網頁介面以生成差異火焰圖,可幫助您在時間過程中識別體驗的性能改進或退步。點擊 結合與比較 以匯出新的 HTML 文件。

    The MicroProfiler diff flame graph builder showing the left and right sides.

    差異火焰圖揮亮了使用更多 CPU 或記憶的卸負 (左或右),用更亮的顏色表示更大的差異。

    The MicroProfiler diff flame graph.