The MicroProfiler adalah alat optimisasi kinerja dan troubleshooting yang tersedia di Roblox Studio dan klien Roblox.Ini memberikan informasi waktu terperinci untuk jadwal tugas tugas yang disebut tag .
- Untuk daftar tugas umum, referensikan tag tag referensi.
- Untuk contoh langkah demi langkah tentang penggunaan MicroProfiler untuk mengidentifikasi masalah kinerja, lihat panduan MicroProfiler.
Dasar-dasar Profiler Mikro
Untuk membuka MicroProfiler, tekan CtrlAltF6 ( ⌘⌥F6 ) di Studio atau klien.Anda juga dapat menggunakan menu pengaturan di klien.
Saat terbuka, bilah menu terlihat di bagian atas tampilan 3D.Dalam mode default, grafik bilah bergerak menunjukkan waktu yang digunakan pada setiap frame dari Jadwal Tugas.

Bar umumnya harus berada di sekitar tengah grafik, tetapi Anda mungkin melihat lonjakan tiba-tiba (peningkatan nilai yang cepat).Spike menunjukkan bahwa lebih banyak waktu diperlukan untuk melakukan beberapa tugas, biasanya karena beban kerja yang meningkat.Sebagai kejadian, membuat banyak bagian bergerak membutuhkan lebih banyak pekerjaan dari simulasi fisika, yang kemudian membutuhkan lebih banyak waktu untuk memproses gerakan dan kontak bagian.Gambar berikut menunjukkan contoh spike:

Untuk menghentikan perekaman frame, tekan CtrlP ( ⌘P ) atau klik Pause di bilah menu.Saat dijeda, garis waktu muncul, dan Anda dapat menavigasi melalui frame dengan mengklik atau seret di grafik.
Untuk ringkasan lengkap tentang berbagai pandangan dan cara menavigasi antarmuka MicroProfiler, lihat mode MicroProfiler.
Thread
Seperti banyak program, Roblox menggunakan beberapa thread untuk melakukan beberapa urutan tugas pada saat bersamaan.Di MicroProfiler mode terperinci, Anda dapat melihat label untuk setiap thread di sebelah kiri.

Ada tiga jenis thread utama:
Utama/Render : Mungkin tidak intuitif, berjalan di CPU.Memproses input, Humanoids , animasi/tweening, kepemilikan fisika, suara, dan resume skrip tunggu.Juga memperbarui antarmuka Studio dan mengkoordinasikan thread lainnya.
Pekerja ("Pekerja RBX": Membantu thread utama dengan jaringan, fisika, dan penemuan jalur.Karena jumlah core di CPU modern, Anda mungkin memiliki banyak thread pekerja, sebagian besar di negara tidur pada waktu tertentu.
Render ("GPU"): Mengikuti logika "siapkan, lakukan, hadirkan". Komunikasikan dengan unit pemrosesan grafis (GPU) perangkat.
- Siapkan: Informasi dari thread utama digunakan untuk memperbarui model rendering.
- Lakukan: Lakukan perintah rendering masalah, termasuk antarmuka 2D.
- Hadir: Sinkronisasi dengan GPU.
Profil khusus
Jika skrip Anda menjalankan tugas yang rumit, Anda dapat mengidentifikasi bagian penting dari kode untuk memastikan bahwa mereka tidak terlalu lama.Bungkus kode dalam debug.profilebegin() dan debug.profileend() untuk menyelesaikan semuanya antara panggilan fungsi tersebut dan membuat label di timeline MicroProfiler.
Skrip Kerja Keras
debug.profilebegin("Hard Work")-- Kode untuk diprofilkandebug.profileend()

Ada jumlah memori terbatas yang tersedia untuk label MicroProfiler.Jika memori ini kehabisan, label profiler khusus mungkin tidak muncul sebagai nama yang berarti di timeline.Gunakan label lebih sedikit untuk menghindari masalah ini.Jika Anda tidak lagi perlu memprofilkan bagian kode Anda, komentari atau hapus panggilan ke fungsi ini.
Contoh
Sampel kode di bawah ini menghubungkan fungsi dummy ke acara RunService.PreSimulation , yang berjalan setiap frame.Apa pun yang dilakukan ini sering harus berjalan seefisien mungkin, jadi fungsi ini adalah kandidat yang baik untuk profiling.
local RunService = game:GetService("RunService")
local function onPreSimulation()
debug.profilebegin("Hard Work")
-- Contoh kerja keras: ganti dua variabel 200.000 kali
local a, b = 0, 1
for _ = 1, 200000 do
a, b = b, a
end
debug.profileend()
end
RunService.PreSimulation:Connect(onPreSimulation)
Ketika Anda menjalankan pengalaman dan membekukan MicroProfiler ( CtrlP atau ⌘P ), label khusus terlihat di bawah label gameStepped .

Dari durasinya di timeline, Anda dapat mengatakan bahwa fungsi menggunakan banyak waktu pemrosesan dibandingkan dengan operasi lain.
Simpan data frame
Jika Anda ingin menyimpan serangkaian data frame untuk direvisi nanti (atau untuk dibagikan dengan orang lain), gunakan menu Dump .Mesin menyimpan data frame ke file bernama microprofile-<date>-<time>.html di direktori log Roblox.
Pada Windows, periksa %LOCALAPPDATA%\Roblox\logs .
Jika Anda menggunakan aplikasi Universal Windows Platform (UWP), periksa \Users\<username>\AppData\Local\Packages\ROBLOXCORPORATION.ROBLOX_<hash>\LocalState\logs\ .
Pada macOS, periksa ~/Library/Logs/Roblox.
File HTML ini menggunakan UI berbasis web yang sama sebagai koneksi langsung untuk perangkat seluler dan dump server .
Perangkat mobile profil
Untuk mengakses MicroProfiler dari klien seluler, perangkat seluler Anda harus terhubung ke jaringan yang sama sebagai mesin pengembangan Anda.
Aktifkan MicroProfiler di menu Pengaturan perangkat seluler. Setelah Anda mengaktifkannya, menu menunjukkan alamat IP dan nomor port.

Sebagai contoh, dalam tangkapan layar di atas, alamatnya adalah 192.168.1.166 dan portnya adalah 1338 .Dari komputer di jaringan yang sama, navigasikan ke http://192.168.1.166:1338 untuk versi web-based dari antarmuka pengguna MicroProfiler.

Profilkan server
Selain klien standar MicroProfiler, Anda dapat mengambil dump singkat dari aktivitas server menggunakan server MicroProfiler.
Dalam pengalaman yang Anda miliki izin untuk diedit, buka Konsol Pengembang dengan CtrlAltF9 .
Di menu dropdown, pilih MicroProfiler .
Di bagian ServerProfiler , spesifikasikan jumlah frame per detik (maksimum 60) dan jumlah detik untuk diprofil (maksimum 4).
Gunakan UI web
Secara umum, UI web MicroProfiler berfungsi serupa dengan mode terperinci , tetapi memiliki beberapa fitur tambahan:
Selain menyaring oleh grup, Anda dapat menyaring oleh thread.
Gunakan CtrlF / ⌘F untuk melompat ke terjadinya tugas yang mengambil sebagian besar waktu di dump.Sebagai contoh, computeLightingPerform berjalan di setiap frame.Jika Anda mencarinya di dump dengan 128 frame, Anda dapat melompat ke frame di mana dibutuhkan waktu terlama untuk menyelesaikannya.
Gunakan menu X-Ray untuk mengaktifkan atau menonaktifkan kode warna untuk alokasi memori.
- Fram lebih ringan di dalam grafik bilah utama menunjukkan alokasi memori yang lebih tinggi.
- Bagian-bagian ringan dari bilah pratinjau dan label ringan di timeline menunjukkan bagian frame dengan alokasi memori lebih tinggi.
- Di mode X-ray, tekan C untuk menunjukkan ukuran total alokasi memori daripada jumlah alokasi.
Gunakan menu Ekspor untuk mengekspor grafik api CPU atau memori, grafik visualisasi khusus yang mengumpulkan semua tumpukan panggilan yang termasuk dalam dump, mempertahankan hierarki orangtua-anak, dan menyesuaikan ukurannya berdasarkan durasi.Grafik api sangat berguna untuk mengidentifikasi tugas yang tidak membutuhkan waktu lama untuk dijalankan (dan karena itu sulit dilihat), tetapi dijalankan begitu sering sehingga waktu pemrosesannya menjadi signifikan.
Anda juga dapat membuat grafik api di Studio, meskipun hanya untuk skrip (waktu eksekusi dan alokasi memori).Dibandingkan dengan grafik api berbasis web, yang ada di Studio berada di atas ke bawah daripada ke bawah dan mendukung waktu penangkapan dramatis lebih lama.
Seret dan lepaskan file dump kedua ke UI web untuk menghasilkan grafik api perbedaan, yang dapat membantu Anda mengidentifikasi perbaikan atau regresi pada kinerja pengalaman Anda seiring waktu.Klik Gabungkan & Bandingkan untuk mengekspor file HTML baru.
Grafik api perbedaan menyoroti dump (kiri atau kanan) yang mengkonsumsi lebih banyak CPU atau memori, dengan warna yang lebih cerah menunjukkan perbedaan yang lebih besar.