Cara Menggunakan Resmon dan Profiler FiveM
Panduan memakai resmon dan profiler bawaan FiveM untuk menemukan resource yang bikin lag, membaca hasilnya, dan pola perbaikan yang paling sering berhasil.
Server terasa lag, FPS pemain turun, atau console penuh hitch warning. Pertanyaannya selalu sama: resource mana penyebabnya? FiveM punya dua alat bawaan untuk menjawabnya: resmon (resource monitor) dan profiler. Keduanya gratis, sudah ada di client dan server, dan jauh lebih bisa diandalkan daripada menebak.
Panduan ini menjelaskan cara memakai keduanya, cara membaca hasilnya, dan apa yang harus dilakukan setelah resource bermasalah ditemukan.
Resmon vs profiler: kapan pakai yang mana
| Resmon | Profiler | |
|---|---|---|
| Fungsi | Ringkasan biaya CPU dan memori per resource secara live | Rekaman detail aktivitas per tick dalam rentang waktu tertentu |
| Kapan dipakai | Cek cepat: resource mana yang paling mahal saat ini | Investigasi: kenapa ada lonjakan, fungsi apa yang lambat |
| Kelebihan | Instan, mudah dibaca | Detail sampai level event dan fungsi |
| Kekurangan | Hanya snapshot, kurang detail untuk lonjakan sesaat | Perlu dianalisis, file hasil bisa besar |
Alur kerja yang praktis: pakai resmon untuk menyempitkan kandidat, lalu profiler untuk membuktikan dan mencari baris yang bermasalah.
Cara memakai resmon di client
Resmon paling sering dipakai di sisi client untuk melihat resource yang membebani PC pemain (dan secara tidak langsung, kualitas script kamu).
- Masuk ke server kamu.
- Tekan
F8untuk membuka console. - Ketik:
resmon 1Panel resmon akan muncul dan menampilkan daftar resource beserta waktu CPU dan memorinya. Untuk menutup, ketik resmon 0.
Cara membaca resmon
- Waktu CPU (ms): berapa lama resource memakai waktu per frame. Ini kolom terpenting. Urutkan dan perhatikan yang paling atas.
- Memori: berapa banyak memori yang dipakai runtime script. Angka yang terus naik selama bermain bisa menandakan memory leak.
Patokan yang sering dipakai komunitas: resource yang sedang tidak dipakai (idle) idealnya mendekati 0,00–0,01 ms, dan resource aktif sebaiknya tetap rendah. Ini kebiasaan komunitas, bukan aturan resmi. Yang lebih penting adalah membandingkan: resource yang jauh lebih tinggi dari yang lain adalah kandidat pertama untuk diperiksa.
Tips mendapatkan hasil yang adil
- Cek dalam beberapa kondisi: diam di tempat sepi, di kota ramai, saat membuka menu, saat naik kendaraan.
- Resource yang hanya mahal saat dipakai (misalnya saat membuka inventory) wajar. Yang bermasalah adalah resource yang mahal terus walaupun tidak dipakai.
- Bandingkan sebelum dan sesudah update resource.
Cara memakai profiler
Profiler merekam apa yang terjadi di setiap tick selama sejumlah frame tertentu. Perintah dasarnya sama di client (console F8) dan di console server (txAdmin Live Console atau terminal FXServer). Panduan resmi ada di docs.fivem.net: Using the profiler.
Langkah 1: Rekam
profiler record 500Angka 500 adalah jumlah frame/tick yang direkam. Mulai perekaman tepat saat masalah sedang terjadi, misalnya saat jam ramai atau saat hitch sering muncul. Perekaman yang terlalu pendek bisa melewatkan lonjakan; yang terlalu panjang menghasilkan file besar.
Langkah 2: Cek status
profiler statusTunggu sampai perekaman selesai.
Langkah 3: Lihat atau simpan hasil
Di client, kamu bisa membuka hasil rekaman dengan:
profiler viewUntuk server, cara yang praktis adalah menyimpan hasil ke file lalu menganalisisnya di PC:
profiler saveJSON hasil-profiler.jsonFile JSON tersebut bisa dibuka di Chrome DevTools: buka tab Performance, lalu muat file profil. Kamu akan melihat timeline per tick dengan blok-blok yang mewakili resource dan event. Cek dokumentasi resmi untuk opsi perintah terbaru, karena detailnya bisa berubah antar versi FXServer.
Cara membaca hasil profiler
- Cari tick yang panjang. Tick yang jauh lebih lebar dari yang lain adalah lokasi hitch.
- Zoom ke tick itu. Lihat resource dan event apa yang memakan waktu paling banyak di dalamnya.
- Cari pola berulang. Blok yang muncul di setiap tick dengan durasi besar biasanya adalah thread dengan
Wait(0)yang isinya berat. - Perhatikan nama event. Event handler yang lambat (misalnya saat pemain join atau saat event ekonomi) sering menunjuk langsung ke fungsi yang perlu diperbaiki.
Setelah resource bermasalah ditemukan
Beberapa pola perbaikan yang paling sering berhasil:
Kurangi frekuensi loop di client
-- Buruk: cek jarak setiap frame di mana pun pemain berada
CreateThread(function()
while true do
local coords = GetEntityCoords(PlayerPedId())
if #(coords - shopCoords) < 2.0 then
-- tampilkan teks interaksi
end
Wait(0)
end
end)
-- Lebih baik: tidur lama saat jauh, cepat hanya saat dekat
CreateThread(function()
while true do
local sleep = 1000
local coords = GetEntityCoords(PlayerPedId())
local dist = #(coords - shopCoords)
if dist < 10.0 then
sleep = 0
if dist < 2.0 then
-- tampilkan teks interaksi
end
end
Wait(sleep)
end
end)Lebih baik lagi: pakai sistem zona atau target (misalnya dari ox_lib) yang sudah dioptimasi, daripada menulis pengecekan jarak sendiri di setiap resource.
Cache native yang mahal
Panggilan native seperti PlayerPedId() atau GetEntityCoords() murah satuannya, tapi dipanggil ribuan kali per detik di banyak resource tetap terasa. Simpan hasil di variabel lokal dalam satu iterasi, jangan dipanggil berulang di baris yang sama.
Perbaiki di server
Untuk masalah server-side seperti query database dalam loop atau thread Wait(0) di server, lihat checklist di cara mengatasi FiveM server hitch warning.
Ganti atau buang resource
Kadang resource yang dibeli atau diunduh memang ditulis dengan buruk. Kalau perbaikan terlalu mahal, cari alternatif yang lebih ringan atau hubungi pembuatnya dengan data profiler sebagai bukti.
Bangun kebiasaan profiling
- Profil setiap resource baru di server staging sebelum masuk production.
- Simpan hasil resmon/profiler sebelum dan sesudah update besar sebagai pembanding.
- Jadwalkan pengecekan rutin saat jam ramai, bukan hanya saat ada keluhan.
- Untuk pemantauan jangka panjang, pasang grafik dan alert: monitoring FiveM dengan Prometheus dan Grafana.
Baca juga cara optimasi server FiveM agar tidak lag untuk panduan optimasi menyeluruh, dan belajar Lua FiveM dari nol kalau kamu ingin menulis script yang ringan sejak awal.
FAQ resmon dan profiler
Apakah pemain biasa bisa membuka resmon?
Ya, resmon bisa dibuka dari console F8 di client. Ini berguna untuk melaporkan masalah ke tim server, tapi juga berarti pemain bisa melihat resource apa saja yang kamu pakai. Jangan menyimpan informasi rahasia di nama resource.
Apakah menjalankan profiler membuat server lebih lambat?
Perekaman menambah sedikit beban selama berjalan. Untuk server production, rekam dalam durasi secukupnya saat masalah terjadi, lalu hentikan. Jangan biarkan perekaman berjalan terus-menerus.
Resource saya tinggi di resmon tapi tidak terasa lag. Perlu diperbaiki?
Resource yang mahal di client mungkin tidak terasa di PC kamu yang kuat, tapi bisa menurunkan FPS pemain dengan PC spek rendah. Kalau server kamu menargetkan pemain Indonesia dengan beragam spesifikasi PC, optimasi client-side tetap layak dilakukan.
Memori resource terus naik. Apa artinya?
Kenaikan sementara wajar karena garbage collection Lua tidak langsung membersihkan memori. Kalau memori terus naik tanpa turun selama sesi panjang, curigai tabel yang terus ditambah tanpa dihapus, misalnya cache data pemain yang tidak dibersihkan saat pemain keluar.
Kalau script sudah rapi tapi server tetap berat
Profiler juga membantu membedakan masalah script dari masalah infrastruktur. Kalau tidak ada resource yang menonjol tapi tick tetap tidak konsisten, cek CPU steal dan I/O di host kamu. Panduan memilih spesifikasi ada di berapa RAM dan CPU untuk server FiveM.
vDedicated Noctis Cloud memakai core AMD Ryzen khusus, DDR5, dan NVMe di Singapore, di jaringan Noctis sendiri (AS202118) dengan anti-DDoS aktif, dengan root penuh supaya kamu bisa memprofil dan menyetel server sesuai kebutuhan. Lihat Hosting FiveM Indonesia atau semua paket di Noctis Cloud.