Hướng dẫn về MicroProfiler

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Hướng dẫn này cho thấy cách sử dụng MicroProfiler để tìm một khía cạnh gây vấn đề của một trải nghiệm và xác định nguyên nhân gốc.Tải trải nghiệm, Mở từ File trong Studio, và theo dõi.


Xác định vấn đề

  1. Sau khi bạn mở trải nghiệm trong Studio, bắt đầu kiểm tra nó với F5 hoặc nút Chơi .

  2. Tốc độ khung cảm thấy tốt, nhưng không mượt mà như nên có đối với trải nghiệm có quy mô và phạm vi này.Di chuyển đến tab Xem và nhấp vào Tổng kết dưới Thống kê.

    Debug stats summary showing 45 FPS.

    Lưu ý rằng tốc độ khung là dưới 60 khung mỗi giây (FPS).

  3. Mở MicroProfiler bằng cách nhấn CtrlAltF6 ( F6 ).

    The MicroProfiler after opening it.

    Lưu ý rằng thời gian khung là thống nhất — các thanh có chiều cao tương tự — vì vậy bất kỳ thứ gì gây ra tỷ lệ khung thấp là chạy mỗi khung chứ không phải chạy thỉnh thoảng và gây ra đỉnh thời gian khung.

  4. Tạm dừng MicroProfiler bằng cách nhấn CtrlP ( P ).Tạm dừng với phím tắt bàn phím mở chế độ chi tiết .

  5. Nhấp và kéo để di chuyển bảng.Lưu ý cách một nhiệm vụ cụ thể trong các luồng công việc dường như đang sử dụng nhiều thời gian xử lý so với luồng chính.Chuyển qua RunService.Stepped và ghi lại thời gian render bao lâu.

    Detailed mode with long labels for processes.
  6. Các thanh xếp chồng trong thời gian biểu cho thấy một hệ thống các mã, vì vậy hãy tiếp tục lướt qua các lớp thấp hơn và thấp hơn để thử xác định vấn đề.

    On-hover details for various processes, with LocalScript highlighted. On-hover details for various processes, with Raycast highlighted.

    Lưu ý nhãn LocalScript , cho thấy tên của kịch bản, và nhãn Raycast , cho thấy rằng vấn đề có thể liên quan đến raycasting.

Tạo nhãn giải quyết sự cố

Bây giờ khi MicroProfiler đã cung cấp một điểm khởi động, bạn có thể giải quyết mã bị lỗi.

  1. Dừng thử nghiệm chơi và lọc cửa sổ Explorer cho localscript để tìm tập tin.

    A view of filtering in the Explorer window.

    Một tìm kiếm cho raycast cho thấy rằng phần mã này có lẽ là nguyên nhân gây ra hiệu lựcsuất kém của trải nghiệm:


    local RAYS_PER_SECOND = 1500
    local function onStepped()
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    end
    RunService.Stepped:Connect(onStepped)

    Cụ thể, bạn có thể thấy rằng mã đang phát ra 1,500 tia mỗi giây theo các hướng ngẫu nhiên.

  2. Để xác minh rằng phần mã này gây ra thời gian trì hoãn render, bọc nội dung của chức năng với debug.profilebegin()debug.profileend() :


    local function onStepped()
    debug.profilebegin("Raycast Spam")
    for _ = 1, RAYS_PER_SECOND do
    local startPosition = getRandomPosition()
    local endPosition = getRandomPosition()
    local direction = endPosition - startPosition
    Workspace:Raycast(
    startPosition,
    endPosition
    )
    end
    debug.profileend()
    end

Xác nhận và sửa lỗi

  1. Bắt đầu kiểm tra trải nghiệm, và mở lại MicroProfiler.

  2. Lưu ý cách MicroProfiler hiển thị nhãn tùy chỉnh, cho thấy chức năng này thực sự là nguyên nhân gốc.

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. Dừng thử nghiệm chơi.

  4. Xóa hoặc bình luận chức năng onStepped() và kết nối RunService.Stepped:Connect(onStepped).

  5. Bắt đầu kiểm tra trải nghiệm một lần nữa, và kiểm tra lại tổng kết chỉ số gỡ lỗi.

    Debug stats summary showing 60 FPS.

    Lưu ý sự cải thiện lớn về tốc độ khung và sự giảm xuống tương ứng về thời gian khung trên đồ thị MicroProfiler.