MicroProfiler Jalan Kaki

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Jalan kaki ini menunjukkan cara menggunakan MicroProfiler untuk menemukan aspek problematik dari pengalaman dan mengidentifikasi penyebab utama. Unduh pengalaman, Buka dari File di Studio, dan ikuti.


Mengidentifikasi Masalah

  1. Setelah Anda membuka pengalaman di Studio, mulai menguji dengan F5 atau tombol Bermain .

  2. Tingkat frame terasa layak, tetapi tidak halus seperti yang seharusnya untuk pengalaman ukuran dan skala ini. Navigate to the Lihat tab and click Ringkasan under Statistik .

    Debug stats summary showing 45 FPS.

    Catat bahwa tingkat frame adalah di bawah 60 frame per detik (FPS).

  3. Buka MicroProfiler dengan menekan CtrlAltF6 ( 1> ⌥1> 3> F63> ).

    The MicroProfiler after opening it.

    Catat bahwa waktu frame adalah konsisten — bar adalah kira-kira sama tinggi—jadi apa pun yang menyebabkan tingkat frame rendah berjalan setiap frame tunggal sebagai lawan berjalan sesekali dan menyebabkan spike waktu frame.

  4. Berhentikan MicroProfiler dengan menekan CtrlP ( P ). Berhenti dengan pintasan keyboard membuka 2> mode rinci2> .

  5. Klik dan seret untuk menyebarkan grafik. Catat bagaimana satu tugas khusus dalam thread pekerja tampaknya menggunakan banyak waktu pemrosesan dibandingkan dengan thread utama. Hover over RunService.Stepped dan catat berapa lama waktu render.

    Detailed mode with long labels for processes.
  6. Batang-batang bertumpuk di timeline menunjukkan hierarki kode, jadi terus hovering di batang bawah dan bawah untuk mencoba dan mengidentifikasi masalahnya.

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

    Catat label LocalScript, yang menunjukkan nama script, dan label Raycast, yang menunjukkan bahwa masalah mungkin terkait dengan raycasting.

Membuat Label Troubleshoot

Sekarang MicroProfiler telah menyediakan titik awal, Anda dapat menyelesaikan kode yang masuk akal.

  1. Hentikan tes bermain dan filter jendela Explorer untuk menemukan file.

    A view of filtering in the Explorer window.

    Sebuah pencarian untuk raycast menunjukkan bahwa bagian kode ini kemungkinan besar adalah penyebab kinerja buruk pelaksanaan:


    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)

    Secara khusus, Anda dapat melihat bahwa kode mengkastilkan 1.500 sinar per detik dalam arah acak.

  2. Untuk memverifikasi bahwa bagian kode ini menyebabkan kelambatan render, bungkus isi fungsi dengan debug.profilebegin() dan 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

Mengkonfirmasi dan Menyelesaikan Masalah

  1. Mulai menguji pengalaman, dan buka MicroProfiler lagi.

  2. Catat bagaimana MicroProfiler sekarang menunjukkan label khusus, menunjukkan bahwa fungsi ini memang penyebab utama.

    MicroProfiler detailed view with 'Raycast Spam' visible.
  3. Hentikan tes bermain.

  4. Hapus atau komentari fungsi onStepped() dan koneksi RunService.Stepped:Connect(onStepped) .

  5. Mulai menguji pengalaman lagi, dan periksa statistik debug lagi.

    Debug stats summary showing 60 FPS.

    Catat peningkatan besar dalam tingkat frame dan penurunan sesuai dalam waktu frame di grafik MicroProfiler.