Panduan MicroProfiler

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

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


Identifikasi masalah

  1. Setelah Anda membuka pengalaman di Studio, mulailah menguji dengan F5 atau tombol Mainkan .

  2. Tingkat frame terasa layak, tetapi tidak sehalus seharusnya untuk pengalaman dengan ukuran dan cakupan ini.Navigasikan ke tab Pandangan dan klik Ringkasan di bawah Statistik.

    Debug stats summary showing 45 FPS.

    Perhatikan bahwa tingkat frame berada di bawah 60 frame per detik (FPS).

  3. Buka MicroProfiler dengan menekan CtrlAltF6 ( F6 ).

    The MicroProfiler after opening it.

    Perhatikan bahwa waktu bingkai adalah konsisten —bilahnya kira-kira memiliki ketinggian yang sama—jadi apa pun yang menyebabkan tingkat bingkai rendah berjalan setiap frame sebagai lawan dari berjalan sesekali dan menyebabkan lonjakan waktu bingkai.

  4. Jeda MicroProfiler dengan menekan CtrlP ( P ).Pause dengan pintasan keyboard membuka mode terperinci.

  5. Klik dan seret untuk memutar grafik.Perhatikan bagaimana tugas tertentu di thread pekerja tampaknya menggunakan banyak waktu pemrosesan dibandingkan dengan thread utama.Pasang di atas RunService.Stepped dan perhatikan berapa lama waktu yang dibutuhkan untuk menampilkan.

    Detailed mode with long labels for processes.
  6. Bar tumpukan di timeline menunjukkan hierarki kode, jadi tetap berada di atas dan di bawah lapisan untuk mencoba dan mengidentifikasi masalah.

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

    Perhatikan label LocalScript , yang menunjukkan nama skrip, dan label Raycast , yang menunjukkan bahwa masalahnya mungkin terkait dengan raycasting.

Buat label solusi masalah

Sekarang MicroProfiler telah memberikan titik awal, Anda dapat memecahkan masalah kode yang bermasalah.

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

    A view of filtering in the Explorer window.

    Pencarian untuk raycast menunjukkan bahwa bagian kode ini mungkin adalah penyebab buruk kinerja 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 memancarkan 1.500 sinar per detik ke arah acak.

  2. Untuk memverifikasi bahwa bagian kode ini menyebabkan penundaan rendering, bungkus konten 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

Konfirmasi dan perbaiki masalah

  1. Mulai menguji pengalaman, dan buka MicroProfiler lagi.

  2. Perhatikan bagaimana MicroProfiler sekarang menampilkan label khusus, menunjukkan bahwa fungsi ini memang penyebab akar.

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

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

  5. Mulai uji pengalaman lagi, dan periksa ringkasan statistik debug lagi.

    Debug stats summary showing 60 FPS.

    Perhatikan peningkatan besar pada tingkat bingkai dan penurunan yang sesuai pada waktu bingkai di grafik MicroProfiler.