Công cụ MicroProfiler là một công cụ tối ưu hóa hiệu suất và giải quyết sự cố có sẵn trong Roblox Studio và khách hàng Roblox.Nó cung cấp thông tin lịch trình chi tiết cho các nhiệm vụ lịch trình nhiệm vụ được gọi là thẻ .
- Đối với danh sách các nhiệm vụ phổ biến, xem tham chiếu thẻ tag.
- Đối với ví dụ chi tiết về việc sử dụng MicroProfiler để xác định vấn đề hiệu suất, hãy xem hướng dẫn MicroProfiler.
Cơ bản MicroProfiler
Để mở MicroProfiler, nhấn CtrlAltF6 ( ⌘⌥F6 ) trong Studio hoặc khách hàng.Bạn cũng có thể sử dụng menu cài đặt trong client.
Khi mở, thanh menu hiển thị ở phía trên của cửa sổ 3D.Trong chế độ mặc định, một biểu đồ thanh di chuyển hiển thị thời gian được sử dụng trên mỗi khung của Lịch trình Nhiệm vụ.

Các thanh nên nằm xung quanh giữa của đồ thị, nhưng bạn có thể thấy những đỉnh đột ngột (tăng nhanh về giá trị).Các gai cho thấy rằng cần thêm thời gian để thực hiện một số nhiệm vụ, thường là do tải công việc tăng lên.Ví ví dụ / trường hợp, tạo nhiều bộ phận di chuyển yêu cầu nhiều công việc hơn từ mô phỏng vật lý, sau đó cần thêm thời gian để xử lý chuyển động và liên lạc phần.Hình ảnh sau đây cho thấy một ví dụ về một gai:

Để tạm dừng ghi lại khung, nhấn CtrlP ( ⌘P ) hoặc nhấp vào Tạm dừng trong thanh menu.Trong khi tạm dừng, một bảng thời gian xuất hiện và bạn có thể điều hướng qua các khung bằng cách nhấp vào hoặc kéo trên đồ thị.
Đối với một tổng quát đầy đủ về các quan điểm khác nhau và cách điều hướng giao diện MicroProfiler, xem chế độ MicroProfiler.
Các tiến trình
Giống như nhiều chương trình, Roblox sử dụng nhiều luồng để thực hiện nhiều chuỗi nhiệm vụ cùng một lúc.Trong MicroProfiler chế độ chi tiết, bạn có thể xem nhãn cho mỗi luồng trên bên trái.

Có ba loại chủ đề chính:
Chính/Render : Có lẽ không trực quan, chạy trên CPU.Xử lý nhập, Humanoids , hoạt hình/tweening, quyền sở hữu vật lý, âm thanh, và tái khởi động kịch bản chờ đợi.Cũng cập nhật giao diện Studio và phối hợp các tiến trình khác.
Người làm việc ("Người làm việc RBX": Giúp chủ đề chính với mạng, vật lý và tìm đường.Do số lượng lõi trong các CPU hiện đại, bạn có thể có nhiều luồng công việc, hầu hết trong trạng thái ngủ vào bất kỳ thời điểm nào.
Hiển thị ("GPU"): Theo logic "chuẩn bị, thực hiện, trình bày". Truyền thông với đơn vị xử lý đồ họa (GPU) của thiết bị.
- Chuẩn bị: Thông tin từ luồng chính được sử dụng để cập nhật mô hình hiển thị.
- Thực hiện: Thực hiện lệnh hiển thị vấn đề, bao gồm giao diện 2D.
- Hiện tại: Synchronizes với GPU.
Hồ sơ tùy chỉnh
Nếu các tập lệnh của bạn đang thực hiện các nhiệm vụ phức tạp, bạn có thể xác định các phần quan trọng của mã để đảm bảo rằng chúng không mất quá nhiều thời gian.Bọc mã trong debug.profilebegin() và debug.profileend() để hoàn thành mọi thứ trong thời gian giữa các cuộc gọi chức năng đó và tạo một nhãn trên thời gian của MicroProfiler.
Tập lệnh HardWorkScript
debug.profilebegin("Hard Work")-- Mã để được phân tíchdebug.profileend()

Có một lượng giới hạn bộ nhớ có sẵn cho các nhãn MicroProfiler.Nếu bộ nhớ này hết, nhãn profiler tùy chỉnh có thể không xuất hiện như một tên có ý nghĩa trong bảng thời gian.Sử dụng ít nhãn hơn để tránh vấn đề này.Nếu bạn không còn cần phải xác định một phần của mã, hãy bình luận hoặc xóa các cuộc gọi đến các chức năng này.
Ví dụ
Mã trình bày dưới đây kết nối một chức năng giả với sự kiện RunService.PreSimulation, chạy mỗi khung.Bất cứ điều gì được thực hiện thường xuyên nên chạy hiệu quả nhất có thể, vì vậy chức năng này là ứng cử viên tốt cho việc phân tích.
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Ví dụ làm việc chăm chỉ: thay đổi hai biến 200,000 lần
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
Khi bạn chạy trải nghiệm và tạm dừng MicroProfiler ( CtrlP hoặc ⌘P ), nhãn tùy chỉnh xuất hiện dưới nhãn gameStepped .

Từ thời gian trên trục thời gian, bạn có thể nói rằng chức năng đang sử dụng rất nhiều thời gian xử lý so với các hoạt động khác.
Lưu dữ liệu khung
Nếu bạn muốn lưu một bộ dữ liệu khung cho việc xem xét sau này (hoặc để chia sẻ với người khác), hãy sử dụng menu Thả .Động cơ lưu dữ liệu khung vào một tập tin có tên microprofile-<date>-<time>.html trong thư mục nhật ký Roblox.
Trên Windows, kiểm tra %LOCALAPPDATA%\Roblox\logs .
Nếu bạn sử dụng ứng dụng Nền tảng Windows Toàn diện (UWP), kiểm tra \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\ .
Trên macOS, kiểm tra ~/Library/Logs/Roblox .
Các tập tin HTML này sử dụng cùng một giao diện người dùng web-based như kết nối trực tiếp cho thiết bị di động và bản sao lưu máy chủ.
Thiết bị di động hồ sơ
Để truy cập MicroProfiler từ khách hàng di động, thiết bị di động của bạn phải được kết nối với cùng mạng như máy phát triển của bạn.
Bật MicroProfiler trong menu Cài đặt của thiết bị di động. Sau khi bạn bật nó, menu hiển thị một địa chỉ IP và một số cổng.

Ví dụ, trong hình ảnh bên trên, địa chỉ là 192.168.1.166 và cổng là 1338 .Từ một máy tính trên cùng mạng, hãy di chuyển đến http://192.168.1.166:1338 để có được phiên bản web-based của giao diện người dùng MicroProfiler.

Hồ sơ máy chủ
Ngoài khách hàng tiêu chuẩn MicroProfiler, bạn có thể lấy các bản sao lưu ngắn của hoạt động máy chủ bằng cách sử dụng MicroProfiler máy chủ.
Trong một trải nghiệm mà bạn có quyền chỉnh sửa, hãy mở Bảng điều khiển nhà phát triển với CtrlAltF9 .
Trong menu thả xuống, hãy chọn MicroProfiler .
Trong phần ServerProfiler , xác định số khung mỗi giây (tối đa 60) và số giây để thu thập hồ sơ (tối đa 4).
Nhấp vào Bắt đầu ghi âm .
Sau vài giây, Bảng điều khiển Nhà phát triển cung cấp đường dẫn đến tệp, đó là cùng một đường dẫn như một bản sao lưu tiêu chuẩn.
Sử dụng giao diện web UI
Nói phổ quát, giao diện web MicroProfiler hoạt động tương tự như chế độ chi tiết, nhưng nó có một vài tính năng bổ sung:
Ngoài việc lọc theo nhóm, bạn có thể lọc theo chủ đề.
Sử dụng CtrlF / ⌘F để nhảy đến sự xuất hiện của một nhiệm vụ chiếm nhiều thời gian nhất trong dump.Ví dụ, computeLightingPerform chạy trong mọi khung.Nếu bạn tìm kiếm nó trong một dump với 128 khung, bạn có thể chuyển đến khung mà nó mất nhiều thời gian nhất để hoàn thành.
Sử dụng menu X-Ray để bật hoặc tắt mã hóa màu cho phân bổ bộ nhớ.
- Khung nhẹ hơn trong đồ thị thanh chính cho thấy phân bổ bộ nhớ cao hơn.
- Các phần nhỏ hơn của thanh xem trước và nhãn nhẹ hơn trên timeline cho thấy các phần của khung với lượng bộ nhớ cao hơn.
- Trong chế độ X-ray, nhấn C để hiển thị tổng kích thước phân bổ bộ nhớ thay vì số phân bổ.
Sử dụng menu Xuất để xuất một đồ thị ngọn lửa CPU hoặc bộ nhớ, một visualization chuyên dụng tổng hợp tất cả các đống gọi bao gồm trong dump, duy trì cấu trúc cha-con và thay đổi chúng dựa trên thời gian.Đồ thị lửa đặc biệt hữu ích để xác định các nhiệm vụ không mất quá nhiều thời gian để chạy (và do đó khó nhận thấy), nhưng chạy quá thường xuyên đến nỗi thời gian xử lý của chúng trở nên đáng kể.
Bạn cũng có thể tạo biểu đồ ngọn lửa trong Studio, mặc dù chỉ dành cho các kịch bản (thời gian thực hiện và phân bổ bộ nhớ).So với các đồ thị ngọn lửa dựa trên web, những cái trong Studio là từ trên xuống thay vì từ dưới lên và hỗ trợ thời gian thu nhập đáng kể lâu hơn.
Kéo và thả một tệp sao lưu thứ hai vào giao diện người dùng web để tạo một biểu đồ ngọn lửa khác biệt, có thể giúp bạn xác định các cải tiến hoặc sự suy giảm về hiệu suất của trải nghiệm theo thời gian.Nhấp vào Kết hợp và so sánh để xuất một tệp HTML mới.
Đồ thị ngọn lửa khác biệt nhấn mạnh bản sao (bên trái hoặc bên phải) tiêu thụ nhiều CPU hoặc bộ nhớ hơn, với các màu sáng hơn chỉ ra sự khác biệt lớn hơn.