微型分析器

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

微處理器 是 Roblox Studio 和 Roblox 客戶端中的一種優化工具,提供詳細的時間資訊給 任務程序 任務,名為 標籤

微型分析器基本概念

要開啟微處理器,請按 CtrlAltF6 ( 1>⌥1> 3>F63> ) 在 Studio 或客戶端。您也可以使用在客戶端中的設定選單。

開啟時,會在3D視角的頂部顯示菜單列。 在預設模式中,移動條形圖示會顯示任務排程器的每個框架上的時間。

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

棒子通常應該在圖形的中間,但你可能會看到突然的尖峰 (快速的價值增加)。尖峰表示需要更多時間來執行某些任務,通常是因為工作量增加。例個體、實例,創建很多移動零件需要更多工作從物理模擬中,這需要更多時間來處理運動和零件觸擊。下圖中的例子顯示了一個尖峰的例子

The Microprofiler with several bars higher than others.

要暫停捕捉框架的錄像,請按 CtrlP (P) 或在菜單欄中按 2>暫停2> 來瀏覽框架。 在暫停狀態下,會出現時間線,您可以通過點擊或拖曳圖形上的框架來瀏覽框架。

有關各種檢視和如何瀏覽微型分析器介面的完整概貌,請參閱微型分析器模式

線程

像許多程序一樣,Roblox 使用多個線程來執行多個任務。在 MicroProfiler 詳細模式 中,您可以看到標籤為每個線程在左側。

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

有三種主要的線程類型:

  • 主要/渲染 : 可能會不一致地執行在 CPU 上。 處理輸入, Humanoids ,動畫/暫停,物理擁有,聲音和等待指令碼。 更新 Studio 界面並協調其他線程。

  • 工作者 ("RBX 工作者") 幫助主線程與網路、物理和路徑找到。 由於現代 CP 的核心數量,你可能有很多工作者線程。

  • 渲染 ("GPU") 跟隨「準備、執行、禮物」的程式碼。與裝置的圖形處理單位(GPU)通訊。

    • 準備:主線程中的資訊是更新渲染模型的。
    • 執行:發行渲染指令,包括 2D 介面。
    • 目前:與GPU同步。

自訂屬性

如果您的脚本執行複雜任務,您可以在確認程式碼完成時間是否為 debug.profilebegin()debug.profileend() 來確認程式碼是否為時已晚。將程式碼包在 Library.Debug.profileBegin() 和 1>Library.Debug.profileend()1> 中,以便在這些程式碼之間跟蹤時間。在 MicroProfiler 時間線上的標籤。

硬工作腳本

debug.profilebegin("Hard Work")
-- 這裡是代碼要被分析的地方
debug.profileend()
A custom label on the detailed view of the MicroProfiler.

微處理器標籤可用的記憶體數量有限。如果記憶體已用完,則可能無法在時間線上顯示有意義的名稱。請使用更少的標籤來避免此問題。如果您不再需要為代碼的某個部分進行 profiling,請注釈或移除此功能的呼叫。

範例

下面的代碼示例連接一個假的函數到 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)

當您執行體驗並暫停微處理器(CtrlPP)時,自訂標籤會在遊戲步驟標籤下顯示。

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

從時間線上的持續時間來看,您可以看到函數使用了很多處理時間,相較於其他操作。

儲存框架資料

如果您想要儲存一組框架資料以備後期評論(或與其他人分享),請使用 卸載 選單。引擎會將框架資料儲存到名為 microprofile-<date>-<time>.html 的 Roblox 記錄目錄中。

  • 在 Windows 上檢查 %LOCALAPPDATA%\Roblox\logs
  • 在 macOS 上檢查 ~/Library/Logs/Roblox

這些 HTML 檔案使用相同的 基於 web 的 UI 作為 為移動設備提供的實時連接服務器垃圾

在移動設備上詳細設定

要從移動客戶端存取微處理器,您的移動設備必須連接到與您的開發機器相同的網路 網路

啟用移動設裝置的 設定 選單中的微診斷程序。 啟用後,選單會顯示 IP 地址和端口號碼。

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

舉例來說,在上方的截圖中,地址是 192.168.1.166 和 port 是 1338 。從同一個網路上的電腦瀏覽到 http://192.168.1.166:1338 的微型處理

The MicroProfiler web view.

服務器個人化

除了標準的客戶端 MicroProfiler 外,您可以使用服務器 MicroProfiler 檢查伺服器的狀態。

  1. 在您擁有編輯權限的體驗中,開啟 CtrlAltF9 的開發者控制器。

  2. 在下拉菜單中選擇 微診斷程式

  3. 伺服器檢查器 區域中,指定每秒鐘的框架數量 (最多 60) 和每秒鐘的檢查時間 (最多 4)。

  4. 點擊 開始錄製

    The Developer Console MicroProfiler screen.

    幾秒鐘後,開發者控制器提供通往檔案的路徑,這是與 標準卸載 相同的路徑。

使用網頁使用者介面

一般來說,微處理器網頁使用者介面與 詳細模式 相同,但它有幾個額外功能:

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

  • 使用 Ctrl F / 0> F0> 跳轉到垃圾桶中花費最多時間的任務發生。例如, 4>computeLightingPerform4> 在每個框架中執行。如果您在垃圾桶中搜尋它,並且使用

  • 使用 X-Ray 選單啟用或關閉顏色編碼以便啟用或關閉記憶體分配。

    The MicroProfiler web view with x-ray enabled.
    • 主要畫面內的輕框指示更高的內存資源配置。
    • 檢視欄中的預覽區和更輕的標籤上的更輕的標籤指示在時間檢視欄上的更高記憶體分配。
    • 在 X 射線模式中,按 C 以顯示記憶體的總大小而不是記憶體的數量。
  • 使用 輸出 選單來輸出一個 CPU 或記憶體火焰圖形,一種特殊的視覺化,它會聚合所有包含在傾印中包含的呼叫堆,這是一種常用的方法來識別不需要花太長時間才能執行的任務 (並且因此很難發現),但在執行時間變得重要。

    The MicroProfiler flame graph.
  • 將第二個垃圾文件拖曳到網頁使用者介面中生成差分火焰圖,這可能有助於您識別在時間過程中您的體驗性能的改進或退化。點擊 結合並比較 以輸出新的 HTML 文件。

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

    差分火焰圖會強調使用更多 CPU 或記憶體的垃圾 (左或右),並且以更亮的顏色表示更大的差異。

    The MicroProfiler diff flame graph.