記憶體使用情況

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

您添加到體驗中的每個構建和腳本組件都會消耗記憶體。當記憶體使用量達到引擎限制時,用戶的設備或伺服器可能會崩潰,因此您需要主動監控使用情況。


開發者控制台 提供了兩種監控記憶體使用情況的工具:

  • 記憶體 — 按使用類別查看實時記憶體消耗,包括您自定義的組件和引擎內部過程。

  • Luau 堆 — 創建堆記憶體的快照,該記憶體指的是您的腳本的記憶體分配。該工具提供幾種視圖,幫助您從不同角度識別當前的記憶體分配和問題,例如物件類型和引擎類別。它還允許您創建多個快照,以對比隨時間變化的記憶體使用情況。

您可以使用以下任一方式在測試或實時遊戲會話中開啟控制台:

  • F9 鍵。
  • 在聊天中輸入 /console
  • 使用遊戲內菜單:
    1. 開啟遊戲內 Roblox 菜單

    2. 選擇 設置 標籤。

    3. 向下滾動至 開發者控制台 並點擊 開啟

記憶體

記憶體 工具分類並顯示實時的記憶體使用情況。它顯示每個類別的記憶體使用情況(以 MB 為單位)並生成使用變化的圖表。

要查看記憶體分配:

  1. 打開 開發者控制台

  2. 展開工具下拉選單以選擇 記憶體

    所有開發者控制台工具的下拉選單,記憶體選項突出顯示以供選擇。
  3. 展開客戶端-伺服器下拉選單以選擇 客戶端伺服器

  4. 瀏覽記憶體使用類別和項目。如果您想查看隨時間變化的使用情況,請展開該類別以顯示圖表。

    • 核心記憶體 — 引擎核心構建過程的記憶體使用情況,包括網絡、角色和您無法直接控制的 GUI 元素。

    • 場地記憶體 — 基於您如何構建體驗的記憶體使用情況,包括模型、地形、零件、腳本和您添加到體驗中的所有其他自定義元素。

      類別描述
      HttpCache從 Roblox 伺服器加載的資產(圖像、網格等),現在保存在記憶體中的緩存中。
      實例Instances 在場地中的實例。
      信號在實例之間觸發的信號(在一個實例上觸發事件以觸發另一個實例上的事件)。
      LuaHeap核心腳本的堆記憶體(隨 Roblox 客戶端一起發佈的腳本)和自定義腳本。
      腳本Luau 腳本。
      物理碰撞物理模擬的碰撞數據。
      物理零件物理幾何和運動學。
      圖形實心模型渲染實心模型的圖形數據。
      圖形網格零件MeshPart 物件的圖形。
      圖形粒子粒子系統的圖形。
      圖形零件零件的圖形。
      圖形空間哈希一般渲染。
      圖形地形地形的圖形。
      圖形紋理紋理記憶體。
      圖形角色紋理角色的紋理記憶體。
      音效記憶體中的音效。
      串流音效串流音效。
      地形體素地形體素。
      地形物理地形物理。
      Gui常見 GUI 元素使用的記憶體。
      動畫用於動畫數據的記憶體,例如角色動畫的姿勢和 KeyframeSequence 緩存數據。
      導航用於支持 PathfindingService 的結構使用的記憶體。
    • 未跟踪的記憶體 — 系統無法輕易歸因於特定來源的記憶體分配。

    • 場地腳本記憶體 — 您的腳本的記憶體使用情況,並提供有關個別腳本和自定義記憶體標籤如何貢獻整體記憶體使用情況的洞見。

    • 核心腳本記憶體 — 內部引擎腳本的記憶體使用情況,您無法直接控制。

    在這些類別中,場地記憶體場地腳本記憶體 是性能優化中最重要的,因為它們幫助您了解自己的構建和腳本選擇如何影響記憶體消耗以及潛在的優化區域。要獲取有關 場地腳本記憶體 的更多見解,使用 Luau 堆 工具創建快照並按不同指標分析記憶體分配。

Luau 堆

Luau 堆 工具允許您創建當前堆記憶體分配的快照,該記憶體指的是 Luau 腳本用於存儲變數、表格、函數和其他運行時數據結構的記憶體。該工具提供幾種視圖,幫助您從不同角度識別問題,例如物件類型和引擎類別。它還允許您創建多個快照,以對比隨時間變化的記憶體使用情況。

創建快照

要創建記憶體分配的快照:

  1. 打開 開發者控制台

  2. 展開工具下拉選單以選擇 LuauHeap

    所有開發者控制台工具的下拉選單,LuauHeap 選項突出顯示以供選擇。
  3. 展開客戶端-伺服器下拉選單以選擇 客戶端伺服器

  4. 點擊 創建快照 按鈕。

分析記憶體使用情況

該工具提供了許多 Luau 記憶體使用情況的視圖:

  • 圖形 — 顯示聚合的記憶體使用樹,每個節點代表一個物件及其已分配的記憶體。
  • 物件標籤 — 顯示按運行時類型(例如 functiontablethread)劃分的記憶體大小和數量。
  • 記憶體類別 — 顯示按引擎分配的記憶體類別劃分的記憶體大小和數量。引擎在分配時為物件分配記憶體類別。
  • 物件類別 — 顯示您的腳本使用和存儲其實例的引擎類別的記憶體大小和數量,例如 EnumItemAnimationCFrame。重要的是,此視圖不顯示引擎內部的記憶體使用情況,只顯示 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 實例的所有零件、腳本和音效對象。
唯一參考視圖的示例

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

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。