Profiler Mikro

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

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.

The Microprofiler frame graph, showing blue frames and detailed frame information.

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:

The Microprofiler with several bars higher than others.

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.

The lefthand side of the Microprofiler detailed view, with rows for threads.

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 diprofilkan
debug.profileend()
A custom label on the detailed view of the MicroProfiler.

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 .

Many labels on the MicroProfiler, with a custom label taking up the majority of the processing time.

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.

A picture of the Settings menu on mobile, showing how to enable the MicroProfiler.

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.

The MicroProfiler web view.

Profilkan server

Selain klien standar MicroProfiler, Anda dapat mengambil dump singkat dari aktivitas server menggunakan server MicroProfiler.

  1. Dalam pengalaman yang Anda miliki izin untuk diedit, buka Konsol Pengembang dengan CtrlAltF9 .

  2. Di menu dropdown, pilih MicroProfiler .

  3. Di bagian ServerProfiler , spesifikasikan jumlah frame per detik (maksimum 60) dan jumlah detik untuk diprofil (maksimum 4).

  4. Klik Mulai Rekam .

    The Developer Console MicroProfiler screen.

    Setelah beberapa detik, Konsol Pengembang memberikan jalur ke file, yang merupakan jalur yang sama dengan dump standar .

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.

    The MicroProfiler web view with x-ray enabled.
    • 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.

    The MicroProfiler flame graph in the web UI.

    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.

    The MicroProfiler flame graph in Studio.
  • 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.

    The MicroProfiler diff flame graph builder showing the left and right sides.

    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.

    The MicroProfiler diff flame graph.