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 bermasalah dari sebuah permainan dan mengidentifikasi penyebab utamanya. Unduh permainan, Buka dari File di Studio, dan ikuti langkah-langkahnya.


Identifikasi masalah

  1. Setelah Anda membuka permainan di Studio, mulai uji permainan dengan F5 atau tombol Play.

  2. Laju bingkai terasa cukup baik, tetapi tidak sehalus yang seharusnya untuk permainan dengan ukuran dan lingkup ini. Tekan CtrlShiftF5 (ShiftF5) untuk menampilkan overlay Ringkasan Kinerja.

    Ringkasan kinerja menunjukkan 45 FPS.

    Perhatikan bahwa laju bingkai di bawah 60 bingkai per detik (FPS).

  3. Buka MicroProfiler dengan menekan CtrlAltF6 (F6).

    MicroProfiler setelah dibuka.

    Perhatikan bahwa waktu bingkai adalah konsisten—batangnya kira-kira memiliki tinggi yang sama—jadi apapun yang menyebabkan laju bingkai rendah berjalan setiap bingkai daripada berjalan sesekali dan menyebabkan lonjakan waktu bingkai.

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

  5. Klik dan seret untuk menggeser grafik. Perhatikan bagaimana satu tugas tertentu di utas pekerja tampaknya menggunakan banyak waktu pemrosesan dibandingkan dengan utas utama. Arahkan kursor ke RunService.Stepped dan catat berapa lama waktu yang dibutuhkan untuk merender.

    Mode rinci dengan label panjang untuk proses.
  6. Batang bertumpuk di timeline menunjukkan hierarki kode, jadi teruslah mengarahkan kursor pada lapisan yang lebih rendah untuk mencoba dan mengidentifikasi masalah.

    Detail saat mengarahkan kursor untuk berbagai proses, dengan LocalScript disorot. Detail saat mengarahkan kursor untuk berbagai proses, dengan Raycast disorot.

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

Buat label pemecahan masalah

Sekarang setelah MicroProfiler memberikan titik awal, Anda dapat mencari kode yang bermasalah.

  1. Hentikan uji coba dan filter jendela Explorer untuk localscript untuk menemukan file tersebut.

    Tampilan penyaringan di jendela Explorer.

    Pencarian untuk raycast menunjukkan bahwa bagian kode ini mungkin penyebab buruknya kinerja permainan:


    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 spesifik, Anda dapat melihat bahwa kode ini menghasilkan 1.500 sinar per detik ke arah yang acak.

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

Konfirmasi dan perbaiki masalah

  1. Mulai uji permainan, dan buka MicroProfiler lagi.

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

    Tampilan rinci MicroProfiler dengan 'Raycast Spam' terlihat.
  3. Hentikan uji coba.

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

  5. Mulai uji permainan lagi, dan periksa Ringkasan Kinerja sekali lagi.

    Ringkasan kinerja menunjukkan 60 FPS.

    Catat peningkatan besar pada laju bingkai dan penurunan waktu bingkai yang menyertainya di grafik MicroProfiler.

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.