下列是微處理器中的常見標籤,依類別組合。了解這些標籤可以幫助您在體驗中找到問題的代碼。檢視表中包含標籤、說明和性能提示,以幫助您改進體驗並最佳化您的體驗。
AI/導航
標籤 | 說明 | 性能提示 |
---|---|---|
rasterize 片 | 更新導航磚塊是導航要邀請的必要組成部分,通常由 pathfinding 跟隨,其中需要這些磚塊是最新狀態。在主線執行緒上執行 NavigationJob/preprocess。 | 減少路徑找尋瓷磚無效,因為這會使得這些路徑需要重新計算。這是因為非導航零件移動造成的。 |
計算路徑 | 通常在 rasterizeTile 後計算路徑。 | 減少 ComputePath 呼叫的數量和世界範圍。如果預期從相似位置開始/結束,請嘗試重用路徑。 |
預處理/獲取原始模型交錯 | 為每個路徑找箭頭時收集世界的地形,並按時執行路徑找箭執行緒的掃描任務。 | 減少零件數。 |
動畫
標籤 | 說明 | 性能提示 |
---|---|---|
模擬/遊戲Stepped | 處理遊戲特定對象,例如 Humanoids 、 Animations 和心跳回報 | |
模擬/遊戲/步驟傳承 | Humanoid 狀態變更和 movement.Called 步驟人形在服務器上 (並行版本) | 如果你有 NPC,請禁用或減少 Humanoid 狀態。階層狀態是最重要的來停用。減少回調到狀態變更,例如 Humanoid.Died 或 Humanoid.Running。 |
模擬/遊戲/步驟動畫 | Animators 將在播放目前的動畫時向前邁進。 | 減少 Animators 或動畫共同體的數量來減輕此步驟的工作量。減少回呼數量到動畫事件,例如 AnimationTrack.KeyframeReached 或 AnimationTrack.Ended 。 |
Simulation/gameStepped/RunService.Stepped | 執行連接到 RunService.Stepped 事件的功能。 | 減少此事件連接到此事件的函數的數量或工作量。請考慮延遲或替換昂貴的計算。請考慮將計算擴展到多個框架。 |
音訊
標籤 | 說明 | 性能提示 |
---|---|---|
聲音 | 處理音訊:地點、效果、音量等 | |
開發者標籤_音效 | 內存聲音:一般是小聲音,足以夠儲存。通常是暫時的一次性 fx,不是長時間的音樂。 | 使用較少的音效。 |
開發者標籤_流媒體聲音 | stream/StreamingSounds:這些是從硬碟上傳播的更大的音頻。通常為長形音樂檔案。 | 使用較少的長音。 |
網路
標籤 | 說明 | 性能提示 |
---|---|---|
網路傳輸接收 | 接收網路包。 如果有很多對象或事件正在重複,這個步驟需要更長的時間。 | 重複更少的對象或事件。 |
複製器/程序包 | 處理網路包裹中的內容,例如運動、事件邀請和屬性變更。 | 減少複製的對象數量或大小,或以增量步驟執行此操作。如果地圖大小增加,則會增加,因為大型地圖通常有更多的總活動。 |
分配帶寬並執行發送器/數據傳輸器和觸摸發送器 | 傳送有關體驗中的活動資料。 | 減少移動對象和/或觸摸的數量。請參閱下列部分。 |
分配帶寬並執行發射器/調度流程工作 | 傳送指定區域到特定客戶端的 "串流" 功能。 | 降低最低和目標流媒體範圍。 |
分配帶寬並執行發送器/數據發送器 | 傳送屬性變更、遠端事件、人形狀態變更、動畫開始/停止。 | 減少複製變更的數模型 |
複製器發送器 | 傳送地形資料給客戶。 | 減少地形變更的數量或尺寸。 |
ModelCompleteness 超級工作 | 僅有伺服器:完整度是內部概念。當模型完全傳送時,模型完整度事件會發句 | 增加或減少更少的實例。 |
Deserialize 包 | 低端網路包裹處理。準備於 Replicator 網路包裹。 | 發送更少的更新。 |
渲染
標籤 | 說明 | 性能提示 |
---|---|---|
準備 | 資訊從主線程中採集,並更新各種資料結構,用於渲染。這樣會阻塞模擬線程,因此應該盡可能小。 | 請參閱下方的準備標籤。 |
準備/Pass3dAdorn | 渲染各種物件裝飾,例如上方的文字標籤。這個步驟可能包括射線投射,以確定這些物件是否可見。 | 減少飾飾的可見物體,例如 BillboardGuis 、 Humanoid 名稱/健康標籤等。 |
準備/Pass2d | 準備 2D 用戶界面渲染 (玩家和 Roblox 用戶界面)。 | 減少 UI 元素的數量或複雜性。 |
準備/更新準備/更新InvalidParts | 更新有一些屬性變更或添加的零件。 | 減少世界上物件的更新量。如果指令碼更新大量物件屬性,請將它們拆分為更多個框架。 |
準備/更新準備/更新無效的FastClusters | 準備 геометria,通常是「FastClusters」用於渲染 Humanoids。子標記指定零件、角度和零件大小。 | 將「人形」在不是 Humanoids 的對象下使用。這不應該用來減少快速群集的呼叫,因為它們消耗了更多記憶體。 |
準備/更新Prepare/updateDynamicParts | 更新位置為 Humanoids、車輛和其他移動實例以渲染。 | 減少可見的移動 Humanoids 或車輛的複雜數量。將相同材料和顏色的零件結合成協賽或 MeshPart 可以幫助。 |
準備/更新Prepare/updateInstancedClusters | 準備使用靈活渲染的靜態幾何圖形。標記「集群」和「集合」會顯示更新的數字。 | 使用較少的總網格和材料變更。您也可以使用類似外觀的對象來創建集群 - 大小、顏色、材料。 |
執行 | 當真實的渲染指令被建立並發出時。 | 請參閱下方的標籤。 |
執行/填寫GUI垂直 | 用戶界面渲染。用戶界面垂直向上指向飾品。「GUI count」標籤指 renderer 列表中的元素數。 | 如果費用高,請確保隨時不使用,以減少更新介面的內容。 |
演出/場景/查詢FrustumOrdered | 應用 frustum 清除,以便不能見到的對象不會顯示。 | 如果有高費,這表示有很多元素。也許使用一些大型網格,其中單個網格有更多細節,而不是許多小獨立項目。 |
執行/場景/計算燈光演出 | 計算靠近攝影機的照明。 | 操作燈光數量或移動相機來減少照明的重新計算時間。 |
執行/場景/計算燈光/計算網路CPU | 更新像素照明,這是使用 Voxel 和 ShadowMap 模式和品質等級在 Future 模式下使用。 | 如果更新塊位佔用時間過長,請考慮使用更低解析度的幾何,減少零件數量,或錨定零件。如果其他子標記過長,請考慮減少燈光,並使用非暗影投射技術對於移動並無效的對象。 |
執行/場景/計算燈光/執行/暗影地圖系統 | 更新暗影地圖。不在品質等級低於 4 或 Lighting.Technology 設為 Voxel 時執行。 | 如果照明設為 Future ,將它設為 ShadowMap 或減少燈光數量。你也可以使用 Light.Shadows 和 1> Class.BasePart.CastShadows1> 來禁用暗影投射在更少重要的實例上。請參�� |
執行/場景/發光,色彩修正,MSAA,SSAO,SSAOApply | 處理後重新渲染。 | 降低處理後效果數量。通常這不是很重要的。 |
演出/場景/UI | 用戶界面渲染。在Id_Screen中,有一個標籤用於顯示使用的材料、合成次數和結構。 | 減少可見的 UI 元素數量。使用 CanvasGroups 可能會在努力增加記憶體使用率的同時帶來更高的性能。 |
執行/場景/更新視圖/更新Particles, 更新ParticleBindings | 更新位置和限制。 | 減少ParticleEmitters、排放率、有效時間等。限制發射器的移動。 |
Id_Opacity | 零透明值的場景中的零件。 | |
透明度_id | 以 0 以外的透明度值在場景中的零件。 | 降低使用部分透明度(值不是 0 和 1 的值)。 |
Id_Decal | 場景中的裝飾。 | |
執行/呈現 | 等待GPU完成上一個框架的渲染;其實是向GPU發出渲染指令;處理低等級的圖形資源。 | 減少場景複雜度。如果此步驟需要很長時間,您可能會因為GPU而受到限制。 |
執行/呈現/等待已完成 | 等待GPU完成上一個框架的渲染。 | 如果這種情況發生得很常見,則渲染的物件數量過多。如果 FRM 可以幫助平衡這種情況,請嘗試減少細節。 |
腳本
標籤 | 說明 | 性能提示 |
---|---|---|
渲染/預覽/fireBindToRenderSteppedCallbacks | 運行步驟的函數,以 RunService:BindToRenderStep() 的方式傳送。 | 確保使用 RunService:BindToRenderStep() 的函數在指令碼中執行的工作量盡可能少。 |
Render/PreRender/RunService.RenderStepped | 執行連接到 RunService.RenderStepped 事件的功能。 | 與 BindToRenderStep 相似,請確保使用此事件的功能盡可能少工作。 |
等待橋梁式腳本工作 | 使用 wait. 框架來預覽程式碼。 | 此步驟有執行時預算可以執行等待指令碼,因此如果您有太多等待指令碼或指令碼的預執時間過長,此步驟可以取多個 |
LuaGC | Lua 垃圾收集週期。標籤提供總共佔用記憶體和佔用記憶體的百分比。 | 泳池 lua 桌和其他可收集的對象或嘗試減少創建暫時桌子或字串 |
心跳/執行服務器心跳 | 執行連接到 RunService.Heartbeat event.Talk 的函數。目前說明已足夠一般,因此不會出錯 | 減少 RunService.Heartbeat 與功能連接的數量或工作量。 |
模擬
標籤 | 說明 | 性能提示 |
---|---|---|
分散物理學擁有人 | 確定伺服器或客戶端對某些例子,例如零件,有權限。 | 分散物理學擁有。 |
模擬/組合 | 更新物理引擎使用的連接對象(裝配)樹。 | 減少創建或摧毀共同體的數量。 |
模擬/物理SteppedTotal/物理Stepped | 執行物理模擬。 | 減少物理模擬身體的數量和複雜性。 |
模擬/物理步驟總計/物理步驟步驟總計/步驟過濾器/步驟過濾器 | 更新模擬島,按照網路擁有人、本地模擬的順序排列零件。零件可以獨立模擬。 | 避免設定網路擁有頻率。請保持零件群組盡可能遠離,以便能獨立模擬。 |
模擬/物理SteppedTotal/物理Stepped/worldStep/stepContacts | 更新對象之間的聯絡。 | 減少一次碰撞的體數量,或使用簡單的碰撞箱。方塊比複合網格更好。 |
Simulation/物理SteppedTotal/物理Stepped/worldStep/stepWorld 或 步WorldThrottled | 解決有關連接器、浮力和 Humanoids 的物理方程式。當引擎超載並無法模擬所有內容時,有些步驟可能會被限制 (步驟WorldThrottled) ,只有 "真實時間組合" 如 Humanoids 才能模擬。 | 取決於以下三個階段的時間位置:步驟聯絡:寬度階段碰撞偵測階段測試。解決器步驟:集成時間和解決碰撞和其他限制更新寬度:更新位置和解決碰撞和其他限制更新寬度:更新位置和解決碰撞和其他限制更新寬度:更新位置和解決碰撞和其他限制更新寬度:更新位置和 |
通知移動裝置 | 幫助追蹤原始模型何時睡眠。 | |
模擬/物理SteppedTotal/物理Stepped/interpolateNetworkedAssemblies | 與此網路夥伴無關的裝配件。 | 將零件網路的所有者設為此對稱,以減少此情況;雖然這會通常會在其他地方執行更多物理工作。 |
模擬/處理FallenParts | 移除因 Workspace/FallenPartsDestroyHeight 而滿落的零件。 | 降低摧毀高度或減少摧毀高度摧毀的零件數。 |
心跳/心跳內部/工作區OnHeartbeat/更新VisuallySleeping | NotifyMovingAssemblies 的第二部分。 | |
心跳/執行服務器心跳 | 執行連接到 RunService.Heartbeat event.Talk 的函數。目前說明已足夠一般,因此不會出錯 | 將連接到 RunService.Heartbeat 的函數工作量或載入量減少。 |
世界步驟/步驟聯絡 | 幫助物理模擬步驟多次觸發更多聯絡。 | 減少碰撞對象的數量。 |
解決 | 協助物理模擬解決物體的動作。 | |
機器人交互器 | 協助以 InterpolateNetworkAssemblies。 |
用戶界面
標籤 | 說明 | 性能提示 |
---|---|---|
輸入/輸出/更新輸入 | 如果使用者自從上一個框架以來執行輸入,則更新和重新啟動所有與輸入相關的事件。 | 這是與使用者輸觸發相關的事件發生時間。當你收到輸入時,重要是要盡量不要直接執行太多工作,而是要嘗試不要做太多的工作。考慮在輸入中執行最小的處理,並且稍後將大型計算推到另一個線程。 |
渲染/預渲染/TweenService | 使用 TweenService 斷開物件,並且呼叫完成回潮,例如使用提供的 TweenSize 或 TweenPosition。 | 使用 TweenService 減少物件的數量,並確保回帶式服務能夠執行最少的工作。 |
渲染/預覽/更新介面 | 更新位置和介面元素的大小。 | 減少由 UILayout 管理的介面元素的尺寸或位置,例如 Class.UILayout 的管理。 |
心跳/TweenService | 在服務伺服器上,使用 TweenService 來擴展物件。 在客戶端上,這是在預覽步驟中完成的。 | 使 TweenService 減少所擁有的物件數量。 |