Mỗi thành phần xây dựng và lập trình mà bạn thêm vào trải nghiệm của mình tiêu thụ bộ nhớ.Khi sử dụng bộ nhớ đạt đến giới hạn của động cơ, thiết bị hoặc máy chủ của người dùng có thể bị lỗi, do đó bạn cần theo dõi chặt chẽ sử dụng bộ nhớ và thực hiện các hành động để tối ưu hóa. Bảng điều khiển nhà phát triển cung cấp hai công cụ để theo dõi sử dụng bộ nhớ, bao gồm:
Bộ nhớ — Xem sử dụng bộ nhớ thực thời gian bởi các danh mục sử dụng, bao gồm cả sử dụng bộ nhớ bởi cả các thành phần tùy chỉnh của bạn và quá trình nội bộ của động cơ.
Luau heap — Tạo bản lưu trên bộ nhớ đống, đề cập đến việc phân bổ bộ nhớ cho các kịch bản của bạn.Công cụ này cung cấp nhiều quan điểm phân bổ bộ nhớ để giúp bạn xác định phân bổ bộ nhớ hiện tại và các vấn đề từ nhiều góc nhìn khác nhau, chẳng hạn như loại đối tượng và lớp động cơ.Nó cũng cho phép bạn tạo nhiều bản sao lưu để so sánh sự khác biệt về sử dụng bộ nhớ theo thời gian.
Bạn có thể mở bảng điều khiển trong khi thử nghiệm hoặc trải nghiệm trực tiếp bằng bất kỳ cách nào sau đây:
- Nhấn F9 .
- Nhập /console.
- Sử dụng menu trong trải nghiệm:
Mở menu kinh nghiệm trong Roblox .
Chọn tab Cài đặt .
Cuộn xuống đến Bảng điều khiển Nhà phát triển và nhấp vào Mở .
Bộ nhớ
Công cụ Bộ nhớ xếp loại và hiển thị sử dụng bộ nhớ thực tế.Nó hiển thị sử dụng bộ nhớ trong MB của mỗi danh mục và tạo biểu đồ về thay đổi sử dụng theo thời gian.
Để xem phân bổ bộ nhớ:
Mở Bảng điều khiển nhà phát triển .
Mở rộng danh sách thả công cụ để chọn Bộ nhớ .
Mở rộng danh sách thả xuống khách hàng-máy chủ để chọn Khách hàng hoặc Máy chủ .
Duyệt các danh mục và mục tiêu sử dụng bộ nhớ.Đối với các danh mục hoặc vật phẩm mà bạn muốn xem mẫu sử dụng quá giờ, mở rộng danh mục để hiển thị biểu đồ.
Bộ nhớ lõi — Sử dụng bộ nhớ bởi quá trình xây dựng lõi của động cơ, bao gồm mạng, hình ảnh, và các yếu tố giao diện người dùng (Giao diện người dùng đồ họa) mà bạn không có sự kiểm soát trực tiếp.
Nhớ vị trí — Sử dụng bộ nhớ dựa trên cách bạn xây dựng trải nghiệm của mình, bao gồm các mô hình, địa hình, các bộ phận, các kịch bản và tất cả các yếu tố tùy chỉnh khác mà bạn thêm vào trải nghiệm của mình.
Tham chiếu Bộ nhớ vị tríThể loại Mô tả HttpCache Lưu trữ Tài sản (hình ảnh, khối lượng, v.v.) được tải từ máy chủ Roblox và hiện đang được giữ trong bộ nhớ đệm. Các thực thể Instances tại địa điểm. Tín hiệu Tín hiệu bắn giữa các thực thể (một sự kiện bắn trên một thực thể để kích hoạt một sự kiện trên ví dụ / trường hợpkhác). LuaHeap Đăng nhập Bộ nhớ đống cho cả hai kịch bản chính (kịch bản đi kèm với khách hàng Roblox) và kịch bản tùy chỉnh. Tập lệnh Luau Các kịch bản. Vật lý va chạm Dữ liệu va chạm cho mô phỏng vật lý. Các bộ phận vật lý Hình học và động lực vật lý. Mô hình GraphicsSolid Dữ liệu đồ họa để render các mô hình rắn chắc. Các bộ phận GraphicsMesh Đồ họa cho MeshPart đối tượng. Hạt đồ họa Đồ họa cho hệ thống hạt. Các phần đồ họa Đồ họa cho các bộ phận. Hash Không Gian Đồ Họa Xử lý chung. Địa hình đồ họa Đồ họa cho địa hình. Texture đồ họa Ký ức kết cấu. Nhân vật GraphicsTexture Ký ức kết cấu cho các nhân vật. Âm thanh Âm thanh trong bộ nhớ. Âm thanh phát trực tiếp Chơi âm thanh. Voxels địa hình Voxel địa hình. Vật lý địa hình Vật lý địa hình. Giúp Bộ nhớ được sử dụng bởi các thành phần GUI thông thường. Hoạt hình Bộ nhớ được sử dụng cho dữ liệu hoạt hình, chẳng hạn như tư thế và KeyframeSequence dữ liệu lưu trữ cho hoạt hình avatar. Điều hướng Bộ nhớ được sử dụng bởi 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 — Sử dụng bộ nhớ của các kịch bản của bạn với cái nhìn vào cách các kịch bản riêng lẻ và thẻ bộ nhớ tùy chỉnh đóng góp vào tổng sử dụng bộ nhớ.
Bộ nhớ CoreScriptMemory — Sử dụng bộ nhớ bởi các kịch bản động cơ nội bộ mà bạn không có sự 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 đối với tối ưu hóa hiệu suất, bởi vì chúng giúp bạn hiểu cách lựa chọn xây dựng và lập trình của bạn ảnh hưởng đến tiêu thụ bộ nhớ và các khu vực tiềm năng để tối ưu hóa.Đối với thêm cái nhìn sâu sắc vào PlaceScriptMemory , bạn có thể sử dụng công cụ Luau heap để tạo bản lưu và phân tích phân bổ bộ nhớ bằng các métrik khác nhau.
Đối tượng Luau堆
Công cụ Luau heap cho phép bạn tạo bản sao lưu về bộ nhớ đống hiện tại, đề cập đến việc phân bổ bộ nhớ cho các kịch bản Luau để lưu các biến, bảng, chức năng và các cấu trúc dữ liệu thời gian thực khác.Công cụ này cung cấp nhiều quan điểm phân bổ bộ nhớ để giúp bạn xác định phân bổ bộ nhớ và vấn đề từ nhiều góc nhìn khác nhau, chẳng hạn như loại đối tượng và lớp máy.Nó cũng cho phép bạn tạo nhiều bản sao lưu để so sánh sự khác biệt về sử dụng bộ nhớ theo thời gian.
Tạo bản lưu
Để tạo bản sao lưu về phân bổ bộ nhớ của bạn:
Mở Bảng điều khiển nhà phát triển .
Mở rộng danh sách thả công cụ để chọn LuauHeap .
Mở rộng danh sách thả xuống khách hàng-máy chủ để chọn Khách hàng hoặc Máy chủ .
Nhấp vào nút Tạo bản sao lưu .
Phân tích sử dụng bộ nhớ
Công cụ cung cấp năm cách xem bạn có thể chọn để xem bộ nhớ Luau của bạn dựa trên các cách nhìn khác nhau:
- 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 gán
- Thẻ đối tượng — Hiển thị kích thước bộ nhớ và số lượng bởi 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 bộ nhớ và số lượng bởi các danh mục bộ nhớ được gán bởi động cơ.Động cơ gán một loại 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 bộ nhớ và số lượng bởi các lớp động cơ mà các tập lệnh của bạn sử dụng và lưu các thực thể của chúng, chẳng hạn như EnumItem , Animation , CFrame .
- Tham chiếu duy nhất — Hiển thị số lượng và tổng số các ví trường không có cha trong mô hình dữ liệu và chỉ có thể truy cập bằng các kịch bản, cùng với tất cả các con đường mà ghim đối tượng ví trường.
Đồ thị
Cái nhìn Biểu đồ là cái nhìn chi tiết và phức tạp nhất trong tất cả các cái nhìn của đống Luau.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 gán.Cây hiển thị cách các đối tượng kết nối với nhau và xác định con đường ngắn nhất giữa các tham chiếu đối tượng.Nó có các cột sau của kích thước bộ nhớ: Kích thước - Sử dụng bộ nhớ tự trị cộng với sử dụng bộ nhớ bởi nội dung bên trong cấu trúc dữ liệu.Tự — Bộ nhớ được gán trực tiếp cho cấu trúc dữ liệu, loại bỏ việc sử dụng bộ nhớ bởi bất kỳ nội dung nào nó chứa.

Gốc của đồ thị cây là registry, lưu tất cả các tham chiếu động cơ và Luau, chẳng hạn như các chức năng kết nối với các tín hiệu hoặc thư viện nhiệm vụ, các bảng trả lại bởi module scripts, và các chức năng toàn cầu, các bảng và lớp.Nó thường làm cha mẹ các tiêu đề phổ biến sau:
- Module @Path.To.Module là bảng được trả về bởi một kịch bản module.
- name:123 =Path.To.Module là một chức năng bên trong một kịch bản được định.Chức năng vô danh không có tên.Cấp độ cao nhất thường đề cập đến chức năng kịch bản toàn cầu.Các chức năng vô danh không có tên.Ví dụ: :1= Workspace.[Username].Animate .
- upvalue là một tham chiếu cho các chức năng được thu thập. Xem Thu thập phạm vi địa phương để biết thêm thông tin.
- env đề cập đến môi trường của một chức năng. Đối với hầu hết các trường hợp, đó là một bảng đại diện cho phạm vi toàn cầu của một kịch bản.
- globals đề cập đến môi trường của một tiền thề.
- [key] đại diện cho các đối tượng phục vụ như chìa khóa bảng.
- array đại diện cho một mảng.
- stack đề cập đến mảng lưu tất cả các địa phương chức năng.
- constants đại diện cho tất cả các giá trị cố định mà chức năng sử dụng.
Danh mục bộ nhớ
Các danh mục bộ nhớ hiển thị kích thước bộ nhớ và số lượng bởi các danh mục bộ nhớ, mà động cơ gán cho các đối tượng tại thời điểm phân bổ.Mặc định, danh mục bộ nhớ có cùng tên với kịch bản, hoặc bạn có thể gán tên danh mục bộ nhớ tùy chỉnh bằng chức năng debug.setmemorycategory.
Tham chiếu duy nhất
Cái nhìn Tham chiếu duy nhất hiển thị sử dụng bộ nhớ của các thực thể không có cha trong mô hình dữ liệu và chỉ có thể truy cập bởi các kịch bản, cùng với tất cả các đường dẫn mà ghim đối tượng thực thể.Cái nhìn này có hai métrik:
- Đếm — Hiển thị số lượng các thực thể có cùng tên có thể truy cập từ cùng một con đường, chẳng hạn như nhiều thực thể có tên là Dragon trong cùng một bảng.
- Tổng số lượng ví dụ — Hiển thị tổng số lượng đối tượng bên trong những gốc đó, chẳng hạn như tất cả các bộ phận, kịch bản và đối tượng âm thanh xây dựng một ví dụ Dragon ví dụ / trường hợp.

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