您添加到遊戲中的每個建築和腳本組件都會消耗記憶體。當記憶體使用量達到引擎限制時,使用者的設備或伺服器可能會崩潰,因此您需要主動監控使用情況。
開發者控制台 提供了兩個工具來監控記憶體使用量:
記憶體 — 按使用類別查看實時記憶體消耗,包括您的自定義組件和引擎內部過程。
Luau 堆 — 創建堆記憶體的快照,這是指您的腳本的記憶體分配。此工具提供幾種視圖,幫助您從不同的角度識別當前的記憶體分配和問題,例如物件類型和引擎類別。它還允許您創建多個快照,以比較隨時間變化的記憶體使用情況。
您可以使用以下任一方式在測試或實時遊戲會話中開啟控制台:
- 按 F9 鍵。
- 在聊天中輸入 /console。
- 使用遊戲內菜單:
開啟遊戲內 Roblox 菜單。

選擇 設置 標籤。
向下滾動至 開發者控制台 並點擊 開啟。
記憶體
記憶體 工具對實時記憶體使用量進行分類和顯示。它以 MB 顯示每個類別的記憶體使用量,並生成一個顯示使用變化的圖表。
要查看記憶體分配:
打開 開發者控制台。
展開工具下拉菜單以選擇 記憶體。

展開客戶端-伺服器下拉菜單以選擇 客戶端 或 伺服器。
瀏覽記憶體使用類別和項目。如果您想查看隨時間變化的使用情況,請展開該類別以顯示圖表。
CoreMemory — 引擎核心建築過程的記憶體使用量,包括網路、化身和您無法直接控制的 GUI 元素。
PlaceMemory — 根據您構建遊戲的方式的記憶體使用量,包括模型、地形、部件、腳本和您添加到遊戲中的所有其他自定義元素。
PlaceMemory 參考類別 描述 HttpCache 從 Roblox 伺服器加載的資產(圖像、網格等),現在保存在記憶體中的快取中。 Instances Instances 在該地方。 Signals 在實例之間觸發的信號(在一個實例上觸發事件以觸發另一個實例上的事件)。 LuaHeap 核心腳本(隨 Roblox 客戶端一起發佈的腳本)和自定義腳本的堆記憶體。 Script Luau 腳本。 PhysicsCollision 物理模擬的碰撞數據。 PhysicsParts 物理幾何和運動學。 GraphicsSolidModels 渲染實體模型的圖形數據。 GraphicsMeshParts MeshPart 物件的圖形。 GraphicsParticles 粒子系統的圖形。 GraphicsParts 部件的圖形。 GraphicsSpatialHash 一般渲染。 GraphicsTerrain 地形的圖形。 GraphicsTexture 紋理記憶體。 GraphicsTextureCharacter 角色的紋理記憶體。 Sounds 記憶體中的聲音。 StreamingSounds 串流聲音。 TerrainVoxels 地形體素。 TerrainPhysics 地形物理。 Gui 常見 GUI 元素使用的記憶體。 Animation 用於動畫數據的記憶體,例如姿勢和 KeyframeSequence 快取數據,用於化身動畫。 Navigation 用於支持 PathfindingService 的結構所使用的記憶體。 UntrackedMemory — 系統無法輕易歸因於特定來源的記憶體分配。
PlaceScriptMemory — 您的腳本的記憶體使用量,並提供有關單個腳本和自定義記憶體標籤如何影響整體記憶體使用量的見解。
CoreScriptMemory — 內部引擎腳本的記憶體使用量,您無法直接控制。
在這些類別中,PlaceMemory 和 PlaceScriptMemory 是性能優化中最重要的,因為它們幫助您了解您的建築和腳本選擇如何影響記憶體消耗以及潛在的優化區域。要獲得有關 PlaceScriptMemory 的更多見解,請使用 Luau 堆 工具創建快照並分析不同指標的記憶體分配。
Luau 堆
Luau 堆 工具允許您創建當前堆記憶體分配的快照,這是指 Luau 腳本用來存儲變數、表、函數和其他運行時數據結構的記憶體。此工具提供幾種視圖,幫助您從不同的角度識別問題,例如物件類型和引擎類別。它還允許您創建多個快照,以比較隨時間變化的記憶體使用情況。
創建快照
要創建記憶體分配的快照:
打開 開發者控制台。
展開工具下拉菜單以選擇 LuauHeap。

展開客戶端-伺服器下拉菜單以選擇 客戶端 或 伺服器。
點擊 創建快照 按鈕。
分析記憶體使用量
該工具提供了許多 Luau 記憶體使用的視圖:
- 圖形 — 顯示聚合的記憶體使用樹,每個節點代表一個分配了記憶體的物件。
- 物件標籤 — 按運行時類型顯示記憶體大小和計數,例如 function、table 和 thread。
- 記憶體類別 — 按引擎分配的記憶體類別顯示記憶體大小和計數。引擎在分配時為物件分配記憶體類別。
- 物件類別 — 按您的腳本使用和存儲其實例的引擎類別顯示記憶體大小和計數,例如 EnumItem、Animation、CFrame。重要的是,這個視圖不顯示引擎本身的記憶體使用情況,僅顯示 Luau VM 的情況。
- 唯一引用 和 無父實例 — 顯示 唯一引用 或 所有剩餘引用 的實例計數和總數,這些實例在數據模型中沒有父項,僅可通過腳本訪問。還顯示所有固定實例物件的路徑。
圖形
圖形 視圖是所有 Luau 堆視圖中最詳細和最複雜的視圖。它顯示一個聚合的記憶體使用樹,每個節點代表一個分配了記憶體的物件。該樹顯示物件之間的連接,並推導出物件引用之間的最短路徑。它具有以下記憶體大小的列:
- 大小 — 自身記憶體使用量加上數據結構內部內容的記憶體使用量。
- 自身 — 直接為數據結構本身分配的記憶體,不包括其包含的任何內容的記憶體使用量。

樹圖的根是 registry,它存儲所有引擎和 Luau 引用,例如連接到信號或任務庫的函數、模組腳本返回的表以及全局函數、表和類別。它通常父項以下常見條目:
- Module @Path.To.Module 是模組腳本返回的表。
- name:123 =Path.To.Module 是指定腳本內的函數。匿名函數沒有名稱。頂層節點通常指的是全局腳本函數。例如::1= Workspace.[Username].Animate。
- upvalue 是捕獲函數的引用。請參見 捕獲本地範圍 獲取更多信息。
- env 是函數的環境。在大多數情況下,它是表示腳本全局範圍的表。
- globals 是線程的環境。
- [key] 代表作為表鍵的物件。
- array 代表一個數組。
- stack 是存儲所有函數局部變數的數組。
- constants 代表函數使用的所有常量值。
記憶體類別
記憶體類別 視圖按記憶體類別顯示記憶體大小和計數,這是引擎在分配時分配給物件的。默認情況下,記憶體類別的名稱與腳本相同,或者您可以使用 debug.setmemorycategory 函數分配自定義記憶體類別名稱。
唯一引用和無父實例
唯一引用 和 無父實例 視圖是相關的。兩者都顯示沒有父項的實例的記憶體使用量,這些實例僅可通過腳本訪問,並顯示所有固定實例物件的路徑。如果一個實例僅在 Luau 腳本中被引用,它將出現在 唯一引用 下。否則,它也被 Roblox 系統使用,並出現在 無父實例 下。這兩個視圖顯示兩個指標:
- 計數 — 從同一路徑可達到的同名實例的數量,例如同一表中多個名為 Dragon 的實例。
- 總實例 — 這些根內部的物件總數,例如構成 Dragon 實例的所有部件、腳本和聲音物件。

這些視圖對於識別不必要的連接實例非常有用,當您不再需要它們時需要將其斷開。如果您在此視圖中看到許多意外的實例,請檢查持有它們的路徑並評估它們是否必要。