Profiler Skrip

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

Profiler Skrip adalah alat dalam Konsol Pengembang yang memungkinkan Anda merekam sesi pemprofilan dari semua skrip yang berjalan dan melihat biaya waktu CPU mereka dengan pengaturan perekaman dan tampilan kustom. Alat ini dapat merekam semua jenis panggilan fungsi, termasuk fungsi Luau, panggilan metode, dan akses properti. Alat ini berguna untuk mengidentifikasi skrip yang menghabiskan sumber daya CPU terbanyak dan memperlambat kinerja.

Merekam sesi pemprofilan

Sebelum merekam, Anda perlu memilih lingkungan perekaman dari:

  • Klien (Default) — Merekam skrip sisi klien, termasuk LocalScripts dan Scripts dengan RunContext yang diatur ke Client.
  • Server — Merekam skrip sisi server, termasuk Scripts dengan RunContext yang diatur ke Server atau Legacy. Profiler Skrip menghapus semua data yang dikumpulkan dari sisi server di akhir setiap sesi.

Anda juga dapat mengatur opsi perekaman berikut:

PerilakuOpsiDefaultDeskripsi
Frekuensi1000 kali per detik (1 KHz)
10.000 kali per detik (10 KHz)
1 KHzFrekuensi 10 KHz memiliki presisi lebih tinggi, karena Profiler Skrip mungkin tidak menangkap panggilan API yang dieksekusi lebih sering daripada frekuensi yang Anda pilih, tetapi juga memiliki biaya kinerja yang lebih tinggi.
Panjang Sesi1 menit
5 menit
10 menit
Manual
ManualOpsi manual mengharuskan Anda menghentikan perekaman secara manual.
Perilaku Polling LangsungHidup
Matikan
MatikanPerilaku ini mempolling dan menyegarkan data pemprofilan setiap detik selama sesi pemprofilan.

Untuk merekam sesi pemprofilan baru:

  1. Perluas dropdown alat untuk memilih ProfilerSkrip.

    Menu dropdown dari semua alat Konsol Pengembang dengan opsi ProfilerSkrip disorot untuk pemilihan.
  2. Perluas dropdown klien-server untuk memilih Klien atau Server.

    Menu dropdown dengan opsi Klien dan Server untuk pemilihan.
  3. (Opsional) Centang kotak Hidup untuk mengaktifkan perilaku polling langsung.

  4. (Opsional) Pilih Frekuensi dan Waktu untuk memilih frekuensi perekaman dan panjang waktu sesi jika Anda tidak ingin menggunakan nilai default.

  5. Klik Mulai untuk memulai sesi pemprofilan. Jika Anda mengatur durasi, Profiler Skrip menampilkan timer hitung mundur dengan waktu tersisa dalam sesi.

  6. Klik Hentikan atau tunggu sampai perekaman selesai untuk menampilkan data pemprofilan.

Membaca data pemprofilan

Setelah sesi dihentikan, Profiler Skrip menghasilkan tabel yang menunjukkan berapa banyak waktu yang dihabiskan setiap panggilan fungsi dalam waktu CPU. Tabel ini mengurutkan panggilan fungsi dari yang paling banyak waktu dihabiskan ke yang paling sedikit waktu dihabiskan, dan memungkinkan Anda mencari fungsi tertentu berdasarkan namanya. Ini menyediakan dua tampilan berikut:

  • Callgraph (Default): Mengkategorikan dan menampilkan panggilan fungsi ke dalam struktur pohon berdasarkan tugas bingkai. Tampilan ini menampilkan setiap kategori tugas sebagai node di bawah akar yang sama dan memungkinkan Anda untuk memperluasnya untuk melihat fungsi. Anda juga dapat mengarahkan kursor ke node mana pun di pohon untuk melihat informasi file dan baris. Misalnya, Stepped/CameraInput/<anonim> mungkin mengungkap Players.[LocalPlayer].PlayerScripts.PlayerModule.CameraModule.CameraInput:125. Contoh tampilan callgraph dari sesi pemprofilan.
  • Fungsi: Menyusun semua fungsi tanpa mengkategorikannya berdasarkan tugas. Contoh tampilan fungsi dari sesi pemprofilan.

Anda juga dapat memilih dari opsi tampilan berikut untuk menyesuaikan kebutuhan debugging Anda:

NamaOpsiDefaultDeskripsi
SatuanMilidetik (ms)
Persentase (%)
msMenampilkan waktu yang dihabiskan pada setiap panggilan API dalam milidetik atau persentase dari total sesi perekaman.
Rata-rataMatikan
1 detik
1 menit
5 menit
10 menit
MatikanMenghitung waktu rata-rata yang dihabiskan pada setiap panggilan API berdasarkan nilai yang dipilih. Jika Anda memilih opsi yang lebih panjang daripada panjang sesi, Profiler skrip meneruskan panjang sesi untuk menghitung rata-rata. Misalnya, Anda dapat memilih opsi 5 menit untuk sesi 1 menit untuk melihat nilai rata-rata yang diharapkan jika Anda menjalankan kode selama 5 menit.

Mengekspor data pemprofilan

Profiler Skrip memungkinkan Anda mengekspor data pemprofilan yang telah direkam sebagai file JSON. Untuk mengekspor data yang direkam setelah sesi pemprofilan:

  1. Di jendela Profiler Skrip, klik Ekspor.

  2. Di jendela ekspor, pilih sesi pemprofilan yang ingin Anda ekspor. Ubah nama file default jika Anda ingin menetapkan nama kustom.

  3. Klik Ekspor untuk menyimpan file JSON.

    Contoh jendela ekspor.

File JSON yang diekspor mencakup bidang berikut:

  • Versi: Nomor versi.
  • SessionStartTime: Sebuah timestamp dalam milidetik yang mencatat waktu mulai sesi.
  • SessionEndTime: Sebuah timestamp dalam milidetik yang mencatat waktu akhir sesi.
  • Categories: Sebuah array kategori tugas bingkai yang direkam dalam sesi pemprofilan. Setiap entri mencakup:
    • Name: Nama dari setiap kategori tugas bingkai.
    • NodeId: Pengidentifikasi unik dari suatu kategori tugas (node). Ini adalah indeks berbasis 1 ke dalam array Nodes. Misalnya, Anda dapat mencari node dengan NodeId 123 dengan mengambil elemen ke-123 dalam Nodes.
  • Nodes: Sebuah array dari node yang direkam dalam sesi pemprofilan. Setiap entri mencakup:
    • TotalDuration: Jumlah waktu yang dihabiskan node dalam waktu CPU dalam mikrodetik.
    • FunctionIds: Sebuah array dari pengidentifikasi unik fungsi.
    • NodeIds: Sebuah array dari ID Node.
  • Functions: Sebuah array dari fungsi yang direkam dalam sesi pemprofilan.
    • TotalDuration: Jumlah waktu yang dihabiskan fungsi dalam waktu CPU dalam mikrodetik.
    • Name: Nama fungsi, jika tersedia.
    • Source: Sumber fungsi, jika tersedia.
    • Line: Nomor baris dari fungsi, jika tersedia.
    • Flags: Sebuah field bit yang menunjukkan lingkungan eksekusi fungsi tertentu. Saat ini dapat memiliki nilai berikut:
      • 0: Bit ke-0 mewakili IsNative untuk eksekusi di bawah Native CodeGen.
      • 1: Bit ke-1 mewakili IsPlugin untuk eksekusi sebagai bagian dari plugin.
Contoh Data Pemprofilan yang Diekspor

{
"Version":2,
"SessionStartTime":1704850750514,
"SessionEndTime":1704850751198,
"Categories":
[
{"Name":"Parallel Luau","NodeId":4},
{"Name":"Heartbeat","NodeId":1}
],
"Nodes":
[
{"TotalDuration":2530,"FunctionIds":[1],"NodeIds":[2]},
{"TotalDuration":2530,"FunctionIds":[2,5],"NodeIds":[3,7]},
{"TotalDuration":1267},
{"TotalDuration":7746,"FunctionIds":[3],"NodeIds":[5]},
{"TotalDuration":7746,"FunctionIds":[4],"NodeIds":[6]},
{"TotalDuration":7746},
{"TotalDuration":1263,"FunctionIds":[6],"NodeIds":[8]},
{"TotalDuration":1263,"FunctionIds":[7],"NodeIds":[9]},
{"TotalDuration":1263,"FunctionIds":[8],"NodeIds":[10]},
{"TotalDuration":1263}
],
"Functions":
[
{"Name":"main","TotalDuration":2530},
{"Source":"builtin_ManageCollaborators.rbxm.ManageCollaborators.Packages._Index.roblox_rodux-3.0.0.rodux.Store","Line":81,"TotalDuration":1267},
{"Name":"Script","TotalDuration":7746},
{"Source":"Workspace.Actor.Script","Line":1,"TotalDuration":7746},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Line":221,"TotalDuration":1263},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Name":"_update","Line":236,"TotalDuration":1263},
{"Source":"builtin_DeveloperInspector.rbxm.DeveloperInspector.Packages._Index.DeveloperFramework.DeveloperFramework.UI.Components.Grid","Name":"_getRange","Line":277,"TotalDuration":1263},
{"Source":"[C]","Name":"ScrollingFrame.CanvasPosition","TotalDuration":1263}
]
}
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.