Mỗi thành phần xây dựng và lập trình mà bạn thêm vào trò chơi của mình đều tiêu tốn bộ nhớ. Khi việc sử dụng bộ nhớ đạt đến giới hạn của engine, thiết bị hoặc máy chủ của người dùng có thể bị treo, vì vậy bạn cần theo dõi việc sử dụng một cách chủ động.
Bảng điều khiển Nhà phát triển cung cấp hai công cụ để theo dõi việc sử dụng bộ nhớ:
Bộ nhớ — Xem mức tiêu thụ bộ nhớ theo thời gian thực theo các danh mục sử dụng, bao gồm các thành phần tùy chỉnh của bạn và các quy trình nội bộ của engine.
Luau heap — Tạo các ảnh chụp của bộ nhớ heap, đề cập đến việc phân bổ bộ nhớ của các script của bạn. Công cụ này cung cấp nhiều chế độ xem để giúp bạn xác định việc phân bổ bộ nhớ hiện tại và các vấn đề từ các góc độ khác nhau, chẳng hạn như loại đối tượng và lớp engine. Nó cũng cho phép bạn tạo nhiều ảnh chụp để so sánh sự khác biệt trong việc sử dụng bộ nhớ theo thời gian.
Bạn có thể mở bảng điều khiển trong quá trình thử nghiệm hoặc phiên chơi trực tiếp bằng bất kỳ cách nào sau đây:
- Nhấn F9.
- Gõ /console vào trò chuyện.
- Sử dụng menu trong trò chơi:
Mở Menu Roblox trong trò chơi.

Chọn tab Cài Đặt.
Cuộn xuống Bảng Điều Khiển Nhà Phát Triển và nhấp vào Mở.
Bộ nhớ
Công cụ Bộ nhớ phân loại và hiển thị việc sử dụng bộ nhớ theo thời gian thực. Nó hiển thị việc sử dụng bộ nhớ theo MB của mỗi danh mục và tạo ra một biểu đồ về sự thay đổi trong việc sử dụng theo thời gian.
Để xem việc phân bổ bộ nhớ:
Mở Bảng điều khiển Nhà phát triển.
Mở rộng menu công cụ để chọn Bộ nhớ.

Mở rộng menu client-server để chọn Client hoặc Server.
Duyệt qua các danh mục và mục sử dụng bộ nhớ. Nếu bạn muốn xem việc sử dụng theo thời gian, hãy mở rộng danh mục để hiển thị một biểu đồ.
CoreMemory — Việc sử dụng bộ nhớ bởi các quy trình xây dựng cốt lõi của engine, bao gồm mạng, avatar và các phần tử GUI mà bạn không có quyền kiểm soát trực tiếp.
PlaceMemory — Việc sử dụng bộ nhớ dựa trên cách bạn xây dựng trò chơi của mình, bao gồm mô hình, địa hình, các phần, script và tất cả các yếu tố tùy chỉnh khác mà bạn thêm vào trò chơi của mình.
Tham chiếu PlaceMemoryDanh mục Mô tả HttpCache Tài sản (hình ảnh, lưới, v.v.) được tải từ các máy chủ Roblox và hiện đang được lưu trong bộ nhớ cache. Instances Instances trong nơi đặt. Signals Các tín hiệu được kích hoạt giữa các instances (một sự kiện được kích hoạt trên một instance để kích hoạt một sự kiện trên một instance khác). LuaHeap Bộ nhớ heap cho cả các script cốt lõi (các script đi kèm với client Roblox) và các script tùy chỉnh. Script Các script Luau. PhysicsCollision Dữ liệu va chạm cho các mô phỏng vật lý. PhysicsParts Hình học và động lực học vật lý. GraphicsSolidModels Dữ liệu đồ họa để hiển thị các mô hình rắn. GraphicsMeshParts Đồ họa cho các đối tượng MeshPart. GraphicsParticles Đồ họa cho các hệ thống hạt. GraphicsParts Đồ họa cho các phần. GraphicsSpatialHash Hiển thị chung. GraphicsTerrain Đồ họa cho địa hình. GraphicsTexture Bộ nhớ kết cấu. GraphicsTextureCharacter Bộ nhớ kết cấu cho các nhân vật. Sounds Âm thanh trong bộ nhớ. StreamingSounds Âm thanh phát trực tuyến. TerrainVoxels Voxel địa hình. TerrainPhysics Vật lý địa hình. Gui Bộ nhớ được sử dụng bởi các phần tử GUI thông thường. Animation Bộ nhớ được sử dụng cho dữ liệu hoạt hình, chẳng hạn như tư thế và dữ liệu đã lưu của KeyframeSequence cho các hoạt hình avatar. Navigation Bộ nhớ được sử dụng bởi các cấu trúc hỗ trợ cho PathfindingService. UntrackedMemory — Các phân bổ bộ nhớ mà hệ thống không thể dễ dàng gán cho một nguồn cụ thể.
PlaceScriptMemory — Việc sử dụng bộ nhớ của các script của bạn với cái nhìn sâu sắc về cách các script riêng lẻ và các thẻ bộ nhớ tùy chỉnh góp phần vào việc sử dụng bộ nhớ tổng thể.
CoreScriptMemory — Việc sử dụng bộ nhớ bởi các script nội bộ của engine mà bạn không có quyền kiểm soát trực tiếp.
Trong số các danh mục này, PlaceMemory và PlaceScriptMemory là những danh mục quan trọng nhất cho việc tối ưu hóa hiệu suất, vì chúng giúp bạn hiểu cách các lựa chọn xây dựng và lập trình của bạn ảnh hưởng đến việc tiêu thụ bộ nhớ và các khu vực tiềm năng để tối ưu hóa. Để có thêm thông tin về PlaceScriptMemory, hãy sử dụng công cụ Luau heap để tạo các ảnh chụp và phân tích việc phân bổ bộ nhớ theo các chỉ số khác nhau.
Luau heap
Công cụ Luau heap cho phép bạn tạo các ảnh chụp của việc phân bổ bộ nhớ heap hiện tại, đề cập đến bộ nhớ mà các script Luau sử dụng để lưu trữ biến, bảng, hàm và các cấu trúc dữ liệu thời gian chạy khác. Công cụ này cung cấp nhiều chế độ xem để giúp bạn xác định các vấn đề từ các góc độ khác nhau, chẳng hạn như loại đối tượng và lớp engine. Nó cũng cho phép bạn tạo nhiều ảnh chụp để so sánh sự khác biệt trong việc sử dụng bộ nhớ theo thời gian.
Tạo ảnh chụp
Để tạo một ảnh chụp của việc phân bổ bộ nhớ của bạn:
Mở Bảng điều khiển Nhà phát triển.
Mở rộng menu công cụ để chọn LuauHeap.

Mở rộng menu client-server để chọn Client hoặc Server.
Nhấp vào nút Tạo ảnh chụp.
Phân tích việc sử dụng bộ nhớ
Công cụ cung cấp nhiều chế độ xem về việc sử dụng bộ nhớ Luau:
- Biểu đồ — Hiển thị một cây sử dụng bộ nhớ tổng hợp, với mỗi nút đại diện cho một đối tượng có bộ nhớ được phân bổ.
- Thẻ đối tượng — Hiển thị kích thước và số lượng bộ nhớ theo các loại thời gian chạy, chẳng hạn như function, table, và thread.
- Danh mục bộ nhớ — Hiển thị kích thước và số lượng bộ nhớ theo các danh mục bộ nhớ được engine gán. Engine gán một danh mục bộ nhớ cho một đối tượng tại thời điểm phân bổ.
- Lớp đối tượng — Hiển thị kích thước và số lượng bộ nhớ theo các lớp engine mà các script của bạn sử dụng và lưu trữ các instances của chúng, chẳng hạn như EnumItem, Animation, CFrame. Quan trọng là, chế độ xem này không hiển thị việc sử dụng bộ nhớ trong chính engine, chỉ hiển thị trong Luau VM.
- Tham chiếu duy nhất và Instances không có cha — Hiển thị số lượng và tổng số instances cho tham chiếu duy nhất hoặc tất cả các tham chiếu còn lại không có cha trong mô hình dữ liệu và chỉ có thể truy cập bởi các script. Cũng hiển thị tất cả các đường dẫn giữ đối tượng instance.
Biểu đồ
Chế độ xem Biểu đồ là chế độ xem chi tiết và phức tạp nhất trong tất cả các chế độ xem Luau heap. Nó hiển thị một cây sử dụng bộ nhớ tổng hợp với mỗi nút đại diện cho một đối tượng có bộ nhớ được phân bổ. Cây cho thấy cách các đối tượng kết nối với nhau và suy ra đường đi ngắn nhất giữa các tham chiếu đối tượng. Nó có các cột kích thước bộ nhớ sau:
- Kích thước — Việc sử dụng bộ nhớ tự thân cộng với việc sử dụng bộ nhớ bởi nội dung bên trong cấu trúc dữ liệu.
- Tự thân — Bộ nhớ được phân bổ trực tiếp cho cấu trúc dữ liệu đó, không bao gồm việc sử dụng bộ nhớ bởi bất kỳ nội dung nào mà nó chứa.

Gốc của cây biểu đồ là registry, nơi lưu trữ tất cả các tham chiếu engine và Luau, chẳng hạn như các hàm kết nối với tín hiệu hoặc thư viện tác vụ, các bảng được trả về bởi các script module, và các hàm, bảng và lớp toàn cục. Nó thường làm cha cho các mục chung sau:
- Module @Path.To.Module là bảng được trả về bởi một script module.
- name:123 =Path.To.Module là một hàm bên trong một script cụ thể. Các hàm ẩn danh không có tên. Nút cấp cao nhất thường đề cập đến hàm script toàn cục. Ví dụ: :1= Workspace.[Username].Animate.
- upvalue là một tham chiếu cho các hàm đã được chụp. Xem Chụp phạm vi cục bộ để biết thêm thông tin.
- env đề cập đến môi trường của một hàm. Trong hầu hết các trường hợp, nó là một bảng đại diện cho phạm vi toàn cục của một script.
- globals đề cập đến môi trường của một luồng.
- [key] đại diện cho các đối tượng phục vụ như các khóa bảng.
- array đại diện cho một mảng.
- stack đề cập đến mảng lưu trữ tất cả các biến cục bộ của hàm.
- constants đại diện cho tất cả các giá trị hằng số mà các hàm sử dụng.
Danh mục bộ nhớ
Chế độ xem Danh mục bộ nhớ hiển thị kích thước và số lượng bộ nhớ theo các danh mục bộ nhớ, mà engine gán cho các đối tượng tại thời điểm phân bổ. Theo mặc định, danh mục bộ nhớ có cùng tên với script, hoặc bạn có thể gán tên danh mục bộ nhớ tùy chỉnh bằng cách sử dụng hàm debug.setmemorycategory.
Tham chiếu duy nhất và instances không có cha
Chế độ xem Tham chiếu Duy nhất và Instances không có cha có liên quan. Cả hai đều hiển thị việc sử dụng bộ nhớ của các instances không có cha trong mô hình dữ liệu và chỉ có thể truy cập bởi các script, cùng với tất cả các đường dẫn giữ đối tượng instance. Nếu một instance chỉ được tham chiếu trong các script Luau, nó xuất hiện dưới Tham chiếu Duy nhất. Nếu không, nó cũng đang được sử dụng bởi các hệ thống Roblox và xuất hiện dưới Instances không có cha. Cả hai chế độ xem đều hiển thị hai chỉ số:
- Số lượng — Số lượng instances có cùng tên có thể truy cập từ cùng một đường dẫn, chẳng hạn như nhiều instances có tên Dragon trong cùng một bảng.
- Tổng số Instances — Tổng số đối tượng bên trong các gốc đó, chẳng hạn như tất cả các phần, script và đối tượng âm thanh tạo thành một instance Dragon.

Các chế độ xem này hữu ích để xác định các instances kết nối không cần thiết, mà bạn cần ngắt kết nối khi không còn cần chúng nữa. Nếu bạn thấy nhiều instances không mong đợi trong chế độ xem này, hãy kiểm tra các đường dẫn giữ chúng và đánh giá xem chúng có cần thiết hay không.