以下是微型調試器中常見標籤的列表,依類別分組。了解這些標籤可以幫助您在體驗中找到問題代碼。表包含標籤標籤、說明和性能建議,可用於提高性能並優化您的體驗。
睡眠
當線程未主動執行任務時,它們進入睡眠狀態,並帶有標籤來指示線程多久未睡眠。在任何時候,大多數工作線程都會處於睡眠狀態。
AI/導航
標籤 | 說明 | 效能建議 |
---|---|---|
縮放瓷磚 | 路徑尋找請邀請所需的更新導航瓷片,通常會跟隨 computePath,需要這些瓷片保持最新。在主線上跟隨導航工作/預處理。 | 減少路徑檢索瓷磚無效化的數量,因為這會導致這些路徑需要重新計算。這是由於移動不可導航的零件造成的。 |
computePath | 計算路徑,通常在 rasterizeTile 之後。 | 減少 ComputePath 呼叫的數量和世界範圍。如果預期多個代理從大約相同的位置開始/結束,請嘗試重複使用路徑。 |
預處理/getPrimitivesOverlapping | 收集每個路徑尋找瓷磚的世界幾何圖形,並將路徑尋找線程執行的掃描任務排程。 | 減少零件數量。 |
動畫
標籤 | 說明 | 效能建議 |
---|---|---|
模擬/遊戲步驟 | 處理遊戲特定對象,例如 Humanoids、Animations 和心跳回叫 | |
模擬/遊戲步驟/步驟傳承 | Humanoid 狀態變更和movement.Called步驟人類在服務器上現在(並行版本) | 如果你有 NPC,則停用或減少 Humanoid 狀態。梯子狀態最重要要禁用。減少回調到狀態變更,例如 Humanoid.Died 或 Humanoid.Running |
模擬/遊戲步驟/步驟動畫 | Animators 將在目前播放的動畫中向前步進。 | 減少 Animators 或動畫聯結的數量,以降低此步驟的負載。減少回呼數量轉為動畫事件,例如 AnimationTrack.KeyframeReached 或 AnimationTrack.Ended |
模擬/遊戲步驟/RunService.Stepped | 執行與 RunService.Stepped 事件連接的功能。 | 減少連接到此事件的功能數量或負載。考慮延遲或替換昂貴的計算。考慮在多個框架上分布計算。 |
音訊
標籤 | 說明 | 效能建議 |
---|---|---|
聲音 | 處理音訊:地點、效果、音量等等 | |
開發者標籤_聲音 | 記憶體聲音:通常是短到足以進入記憶體的聲音,通常是短暫的一擊效果,而不是長形式的音樂。 | 使用較少的短音效。 |
開發者標籤_傳送聲音 | 流/傳輸聲音:這些是從磁碟傳輸的較大的聲音。一般來說,長形式的音樂檔案。 | 使用較少的長音效。 |
網路連線
標籤 | 說明 | 效能建議 |
---|---|---|
網路包接收 | 接收網絡包。如果複製了許多對象或事件,此步驟需要更長時間。 | 複製較少的對象或事件。 |
複製器/進程包包 | 處理網絡包的內容,例如動作、事件呼叫和屬性變更。 | 減少複製的對象數量或尺寸,或以增量步驟進行此操作。如果地圖尺寸增加,可能會增加,因為更大的地圖通常會有更多的整體活動。 |
配置帶寬並執行發送者/派送物理發送者和觸發器 | 傳送有關體驗中的活動的資料。 | 減少移動物件數量和/或觸摸次數。請參見下一個部分。 |
分配帶寬並執行發送者/派送流程工作 | 將相應的特定區域傳送到「傳輸」功能中的特定客戶端。 | 減少最小和目標傳輸範圍。 |
分配帶寬並執行發送者/派送數據發送者 | 傳送屬性變更、遠端事件、人形狀態變更、動畫開始/停止。 | 減少複製到數據模型的變更數量 |
複製器發送集群 | 向客戶傳送地形資料。 | 減少地形變更的數量或尺寸。 |
模型完整度超級工作 | 僅限伺服器:完整性是一個內部概念。當模型完全傳送時,模型完全性事件會被句 | 添加或移除更少的實例。 |
脫序化包裹 | 低等級網路包處理。準備 Replicator 過程包。 | 發送更少的更新。 |
渲染
標籤 | 說明 | 性能說明 |
---|---|---|
準備 | 資訊從主線程收集,並更新用於渲染的各種數據結構。這會阻止模擬線程,因此應盡量縮小。 | 請參閱下方的「準備標籤」。 |
準備/Pass3dAdorn | 渲染各種物件飾品,例如物件上方的文字標籤。此步驟可能包括射線投射,以確定是否可見這些物件。 | 減少可見的裝飾物數量,例如 BillboardGuis、Humanoid 名稱/健康標籤等等 |
準備/通過 2d | 準備 2D 用戶介面渲染(玩家和 Roblox 用戶介面)。 | 減少 UI 元素的數量或複雜度。 |
準備/更新準備/更新無效零件 | 更新那些擁有已變更或新增的屬性的零件。 | 減少世界上的屬性變更量。如果腳本更新了大量對象屬性,則分解到框架上。 |
準備/更新準備/更新無效的快速集群 | 準備幾何圖形,通常使用「快速集群」來渲染Humanoids。子標記指定零件數、邊緣數和邊緣尺寸。 | 減少「人形」在不是 Humanoids 的對象下的使用。不應將此用於縮短呼叫,因為快速集群會消耗更多記憶。 |
準備/更新準備/更新動態零件 | 更新位置 Humanoids 、車輛和其他移動實例以進行渲染。 | 減少移動 Humanoids 或可見車輛的數量或複雜度。將相同材料和顏色的零件結合成聯盟或MeshPart可以幫助解決這個問題。 |
準備/更新準備/更新實例集群 | 準備使用實例渲染的靜態幾何(零件和網格零件)。標籤「集群」和「實例」指示更新的數量。 | 使用較少的整體網格和材料變化。您也可以使用具有相似外觀的對象來創建集群 - 尺寸、顏色、材料。 |
執行 | 當實際渲染指令被創建和發出時。 | 請參閱下方的執行標籤。 |
執行/填充GUI邊緣 | 用戶介面渲染。填充緩存器以用戶介面邊緣來裝飾。「使用者介面數量」標籤指示渲染器列表中的元素數量。 | 如果成本高,請通過確保正確隱藏,停用 UI 時減少更新的 UI 數量。 |
執行/場景/查詢FrustumOrdered | 應用碎片收集,因此不可見的對象不會被渲染。 | 如果有高成本,就表示有很多元素。可能使用一些較大的網格,其中單一網格包含更多細節,而不是許多小零件。 |
執行/場景/計算光源執行 | 計算攝影機頭附近的照明。 | 操縱光源數量或移動相機較少以減少重新計算照明所需的時間。 |
執行/場景/計算光源執行/光網CPU | 更新用於 Voxel 和 ShadowMap 模式以及在 Future 模式下品質等級低於 4 的 voxel 燈光。 | 如果更新片段占用時間過長,請考慮使用較低解析度的幾何圖形、減少零件數量或錨定零件。如果其他子標籤花費過長時間,請考慮減少燈光數量並使用非陰影投射幾何體對移動並無效化空間的物體。 |
執行/場景/計算光源執行/陰影地圖系統 | 更新陰影地圖。在品質等級低於 4 或當 Lighting.Technology 設為 Voxel 時未執行。 | 如果燈光設為 Future ,將其降低至 ShadowMap 或減少燈光數量。您也可以使用 Light.Shadows 和 BasePart.CastShadows 來禁用少於重要的實例上的陰影投射。請參閱改善效能。 |
執行/場景/發光、色度修正、MSAA、SSAO和SSAOApply | 後期處理渲染。 | 減少後期處理效果的數量。通常這不是很重要。 |
執行/場景/介面 | 介面渲染。在 Id_Screen 中,有一個標籤,包含使用的批量、材料和三角形數量。 | 減少可見的使用者介面元素數量。使用 CanvasGroups 可能會以犧牲增加記憶使用量的方式幫助。 |
執行/場景/更新視圖/更新粒子, 更新粒子綁定 | 更新粒子位置和邊界。 | 減少 ParticleEmitters 數量、發射率、壽命等。限制發射器的移動。 |
Id_Opaque | 場景中的零透明值的零件。 | |
透明ID_Id | 場景中的零件透明值不是 0 的零件。 | 減少使用部分透明度(值不是 0 和 1)。 |
Id_Decal | 場景中的裝飾。 | |
執行/呈現 | 等待 GPU 完成上一個框架的渲染;實際上向 GPU 發出渲染指令;處理低級圖形資源。 | 減少一般場景的複雜度。如果此步驟花費長時間,您可能會受到 GPU 限制。 |
執行/呈現/等待完成 | 等待 GPU 完成上一個框架的渲染。 | 如果這一般發生很多,則渲染的物件數量過高。FRM 可以幫助平衡這一點,但如果它仍然很高,請嘗試使用較少的細節。 |
腳本
標籤 | 說明 | 效能建議 |
---|---|---|
渲染/預渲染/火焰綁定到渲染步驟回調 | 運行功能,用 RunService:BindToRenderStep() 綁定渲染步驟。 | 確保使用 RunService:BindToRenderStep() 的腳本功能做出盡可能少的工作。 |
渲染/預渲染/RunService.RenderStepped | 執行與 RunService.RenderStepped 事件連接的功能。 | 與 BindToRenderStep 類似,確保使用此事件的功能盡量少做工作。 |
等待混合腳本工作 | 繼續使用等待框架等待的腳本。 | 此步驟有執行時間經費來運行等待腳本,因此如果您有太多等待腳本或在交付前具有長時間運行的腳本,此步驟可能需要多個 |
LuaGC | Luau 垃圾收集週期。標籤提供總分配量和已釋放的多少的記憶估計。 | 減少使用泳池 Lua 表和其他收集物或嘗試減少創建暫時表或字串 |
心跳/RunService.Heartbeat | 運行與 RunService.Heartbeat event.Talk 連接的功能到模擬和腳本聯繫。目前的描述已經足夠一般化,不會錯誤。 | 減少連接到 RunService.Heartbeat 的功能的數量或工作量。 |
模擬
標籤 | 說明 | 效能建議 |
---|---|---|
分布式物理擁有權 | 確定伺服器或客戶端對特定實例,例如零件,是否有權力。 | 分布式物理擁有權。 |
模擬/裝配 | 更新使物理引擎使用的連接對象樹(裝配)的更新。 | 減少創建或摧毀的聯結數量。 |
模擬/物理步驟總數/物理步驟 | 執行物理模擬。 | 減少物理模擬身體的數量和複雜度。 |
模擬/物理步驟總數/物理步驟/空間過濾器/過濾步 | 更新模擬島,根據網絡擁有權配置零件,本地模擬。島嶼是不互相影響的零件群組,可獨立地模擬。 | 避免頻繁設置網絡所有權。保持零件群足夠遠離對方,以便獨立地模擬。 |
模擬/物理步驟總數/物理步驟/世界步驟/步驟聯繫 | 更新對象之間的聯繫。 | 減少一次碰撞的身體數量,或使用更簡單的碰撞盒。立方體比複雜的網格更好。 |
模擬/物理步驟總數/物理步驟/世界步驟/步驟世界 或 步驟世界減速 | 解決與連接器、浮力和 Humanoids 相關的物理方程。當引擎過載且無法實時模擬所有內容時,一些步驟可能會被限制(步驟世界限制),只有Humanoids等「實時裝配」被模擬。 | 取決於時間是否依照以下三個階段進行:步驟聯繫人:窄階段碰撞偵測幾何測試。解決步驟:整合時間並解決碰撞和其他限制,更新廣域:在碰撞偵測系統中整合組件的位置,並找到可能碰撞的窄階對組。 |
通知移動裝配體 | 幫助追蹤原始物件睡眠時間。 | |
模擬/物理步驟總數/物理步驟/間歇網絡裝配 | 介紹不被此網絡夥伴控制的裝配。 | 將零件的網絡所有者設為此對等以減少這種情況;雖然這通常會導致在其他地方執行更多物理工作。 |
模擬/處理掉落零件 | 移除已跌落到工作區/FallenPartsDestroyHeight以下的零件。 | 降低摧毀高度或減少到摧毀高度掉落的零件數量。 |
心跳/心跳內部/工作區在心跳上/更新視覺睡眠 | 移動通知組件的第二部分。 | |
心跳/RunService.Heartbeat | 運行與 RunService.Heartbeat event.Talk 連接的功能到模擬和腳本聯繫。目前的描述已經足夠一般化,不會錯誤。 | 減少連接到 RunService.Heartbeat 的功能數量或負載。 |
世界步驟/步驟聯繫 | 幫助物理模擬步驟多次與多個聯繫一次。 | 減少碰撞的物件數量。 |
解決批次 | 幫助物理模擬解決物體的批量運動。 | |
機制互相插入 | 幫助InterpolateNetworkAssemblies。 |
UI
標籤 | 說明 | 效能建議 |
---|---|---|
渲染/預渲染/更新輸入 | 如果使用者自上一個框架以來進行了輸入,將更新並發射所有與輸入相關的事件,如果使用者進行了輸入。 | 這是當使用者輸入相關事件發生時。當你獲得輸入時,嘗試不要直接進行過多工作很重要。考慮對輸入進行最小程度的處理,大型計算應該被推到稍後發生的另一個線程。 |
渲染/預渲染/漸進服務 | 使用 TweenService 檢查對象更新,並呼叫完成回調,例如用於提供給 TweenSize 或 TweenPosition 的回調。 | 減少使用 TweenService 檢查的物件數量,並確保回呼盡可能少地工作。 |
渲染/預渲染/更新UILayouts | 更新 UI 元素的位置和尺寸。 | 減少動態縮放或重新定位的 UI 元素數量,例如由 UILayout 管理的元素。 |
心跳/暫時服務 | 在伺服器上,使用 TweenService 擦除的對象進行更新。在客戶端上,這會在預覽步驟中執行。 | 減少由 TweenService 擦除的物件數量。 |