場景分析工具提供了一組在 Roblox Studio 中的視圖,讓您可以快速比較客戶端和伺服器場景的組織方式、使用的資源以及負責該資源使用的實例。場景分析設計用於遊玩和測試會話期間,並可以檢查客戶端和伺服器數據模型。

啟用場景分析
- 在 檔案 > Beta 功能 中啟用 場景分析。
- 在菜單欄中,選擇 視窗 > 性能摘要 > 場景分析。
使用場景分析
場景分析設計用於遊玩或測試會話期間。打開場景分析窗口,瀏覽可用的模式。當一個模式處於活動狀態時,您會看到一個顯示資源相對大小和貢獻於這些資源的實例的方框—簡化的樹形圖視圖。
- 在簡化的樹形圖視圖下方是當前視圖中的所有項目列表。
- 在場景分析中右鍵單擊選定項目通常會讓您直接跳轉到資源管理器中的該項目。
- 您可以使用搜索框按名稱過濾當前顯示。
模式
場景分析有多種不同的模式,每個模式都針對不同的用例。
腳本記憶體
該視圖顯示每個 Script、LocalScript 和 ModuleScript 在 Luau VM 中使用的記憶體量。這是腳本分配的表和其他記憶體,而不是動畫、紋理和聲音等資產使用的記憶體。該視圖進一步按腳本執行的常見位置和 Script 與 ModuleScript 進行細分。
未父項的實例
未父項的實例視圖顯示哪些腳本和模組持有對實例的引用,並按類型計算。
持有對實例的引用的腳本是正常的,並不單獨表示有錯誤或記憶體洩漏。然而,如果您在調查記憶體洩漏,這個視圖讓您容易發現腳本是否進行了您不預期的操作。
如果您仍然在尋找記憶體洩漏的根本原因,這個工具與 Luau 堆 工具相輔相成,該工具可以顯示有關單個分配的更多信息。
在此視圖中右鍵單擊任何腳本以直接在資源管理器中選擇它。
實例組合
實例組合視圖顯示目前在客戶端或伺服器上存在的實例。當您在大型和複雜的構建中工作時,這是非常寶貴的,因為每個實例都有復制和記憶體成本。
例如,類別(如角色、幾何和紋理)旨在幫助您了解場景的平衡。例如,您可能並不打算擁有 25,000 個粒子發射器,但這個視圖讓您知道。
該視圖也讓您容易選擇所有給定類型的實例。
音訊記憶體
音訊記憶體視圖顯示每個音訊資產目前消耗的記憶體量。每個音訊餅乾使用的實際記憶體相當複雜,但實際上,刪除所有對音訊餅乾的實例引用可以使該記憶體卸載。
在此視圖中右鍵單擊任何音訊資產以選擇所有使用它的實例。
動畫記憶體
動畫資產是生產中最常見的記憶體洩漏來源之一。Roblox 不斷卸載未使用的動畫資產,但腳本在其父模型被銷毀後常常會繼續保留動畫。
與音訊資產一樣,刪除所有對動畫資產的引用的實例可以使其卸載。
這個視圖和未父項的實例視圖一起,使跟踪動畫的生命周期以及它們實際使用的記憶體變得容易。
在此視圖中右鍵單擊任何動畫以選擇所有使用它的實例。
三角形組成
三角形組成視圖提供了當前在主視口中渲染的三角形和繪製呼叫的更詳細細分。
這些細分包括陰影、不透明、透明、地形、草、粒子、天空和 UI 的計數。
這些組成信息幫助您更好地理解場景幾何的組成,並確定場景中包含意外幾何的情況。
引擎 API
您也可以通過 SceneAnalysisService 以編程方式訪問場景分析數據,該服務通過 MCP 伺服器 曝露。每個方法返回包含與可視顯示使用的相同數據的嵌套子項的表格。
| 方法 | 描述 |
| GetInstanceCompositionAsync | 返回按類別和類別來自 DataModel 樹的實例計數。 |
| GetScriptMemoryAsync | 返回每個腳本的 Luau VM 堆記憶體使用量(以位元組為單位)。 |
| GetUnparentedInstancesAsync | 返回由 Luau 擁有但不再在 DataModel 中的實例,按主腳本分組。 |
| GetTriangleCompositionAsync | 返回按渲染通過的三角形和繪製呼叫計數。 |
| GetAnimationMemoryAsync | 返回按片段去重的已加載動畫剪輯記憶體。 |
| GetAudioMemoryAsync | 返回按資產 ID 去重的已加載音訊資產記憶體。 |