FiveM Resmon คืออะไร? วิธีหา Script กินเครื่อง
FiveM Resmon หรือ Resource Monitor คือเครื่องมือสำหรับตรวจว่า Resource ฝั่ง Client ตัวไหนกำลังใช้ CPU และ Memory มากผิดปกติ เหมาะสำหรับแก้ปัญหา FiveM FPS ตก กระตุก Micro-stutter หรือเข้า Server แล้วเครื่องทำงานหนัก
คำสั่งเปิด Resmon คือ
resmon true
และปิดด้วย
resmon false
Resmon จะแสดง Resource แต่ละตัวพร้อมข้อมูลสำคัญ เช่น
CPU Usage ในหน่วยมิลลิวินาที
Memory Usage
Resource Name
ทำให้ Developer สามารถเปลี่ยนจากการเดาว่า
“Script ไหนทำ FPS ตก?”
เป็นการตรวจจากข้อมูลจริง
อย่างไรก็ตาม Resmon เป็นเครื่องมือ ฝั่ง Client เป็นหลัก ไม่ใช่เครื่องมือสำหรับหา FXServer CPU สูงหรือ Server Thread Hitch โดยตรง หากปัญหาอยู่ฝั่ง Server ควรใช้ Profiler, txAdmin และ Server Metrics เพิ่มเติม
บทความนี้จาก comsiam จะอธิบายวิธีใช้ FiveM Resmon ตั้งแต่เริ่มต้น วิธีอ่านค่า วิธีทดสอบ Script และวิธีแยกว่าปัญหาเกิดจาก Client Script, NUI, Asset หรือ Server
① FiveM Resmon คืออะไร?
Resmon ย่อมาจาก
Resource Monitor
เป็นเครื่องมือ Developer ของ FiveM สำหรับดูการใช้ทรัพยากรของ Resource
แนวคิดง่าย ๆ:
FiveM Client
├── hud
├── inventory
├── phone
├── police
├── garage
└── vehicle-script
Resmon ช่วยบอกว่า Resource แต่ละตัวใช้ CPU และ Memory เท่าไรบนเครื่องผู้เล่น
② Resmon ใช้ทำอะไร?
เหมาะสำหรับหาอาการ เช่น
FPS ต่ำหลังเข้า Server
FPS ลดหลังติดตั้ง Script ใหม่
เกมกระตุกเป็นช่วง
เปิด Phone แล้ว FPS ตก
เข้า Garage แล้วกระตุก
เปิด Inventory แล้วหน่วง
HUD กินเครื่อง
Resource ใช้ Memory สูง
จึงเป็นเครื่องมือสำคัญมากสำหรับ Client Optimization
③ วิธีเปิด FiveM Resmon
เข้า Server แล้วเปิด F8 Console
จากนั้นพิมพ์
resmon true
Resource Monitor จะปรากฏขึ้นบนหน้าจอ
④ วิธีปิด Resmon
ใช้
resmon false
เมื่อทดสอบเสร็จ
ไม่จำเป็นต้องเปิดค้างตลอด Gameplay
⑤ Resmon ดูค่าอะไรบ้าง?
ข้อมูลหลักที่เอกสาร Cfx.re ระบุคือ
Resource
CPU Usage
Memory Usage
โดย CPU จะแสดงในรูปเวลาประมวลผลของ Resource
จึงช่วยเปรียบเทียบ Resource ที่ทำงานอยู่พร้อมกันได้ง่าย
⑥ ค่า CPU ใน Resmon หมายถึงอะไร?
เป็นเวลาที่ Resource ใช้ในการประมวลผลฝั่ง Client
ถ้า Resource ใช้เวลานานขึ้น Client มีเวลาน้อยลงสำหรับ
Game Engine
Rendering
Physics
Resources อื่น
จึงสามารถสัมพันธ์กับ FPS และ Micro-stutter ได้
⑦ ค่า Resmon ยิ่งต่ำยิ่งดีไหม?
โดยหลัก Resource ควรทำงานเฉพาะเท่าที่จำเป็น
แต่ไม่ควรตัดสินจากตัวเลขเดียวว่า
0.01 = ดี
0.10 = แย่
โดยไม่มี Context
Resource ที่มี Gameplay ซับซ้อนย่อมต้องใช้ CPU มากกว่า Script Config ธรรมดา
สิ่งสำคัญคือดู
ค่าเฉลี่ย
Spike
Feature ที่กำลังทำงาน
จำนวน Resource รวม
FPS จริง
ร่วมกัน
⑧ อย่ายึดตัวเลข 0.00 ms มากเกินไป
Resource ที่แสดงประมาณ
0.00 ms
ไม่ได้พิสูจน์ว่า Resource ทั้งระบบ Optimize สมบูรณ์
อาจเป็นเพราะ
Resource Idle
Sampling/Rounding
Feature ยังไม่ได้ทำงาน
และยังมี Server-side Code ที่ Resmon ฝั่ง Clientไม่ได้วัด
⑨ ต้องทดสอบตอน Resource ทำงานจริง
สมมติกำลังตรวจ Phone
อย่าเพียงยืนเฉย ๆ แล้วดูค่า
ให้ลอง
เปิด Phone
เปิด Contacts
เปิด Messages
Scroll
โทร
ปิด Phone
แล้วสังเกต CPU และ Memory
จึงจะเห็น Workload จริง
⑩ Inventory ก็ต้องทดสอบตอนใช้งาน
ลอง
เปิด Inventory
Drag Item
Use Item
Split Item
Drop Item
เปิด Stash
หาก Resmon กระโดดสูงเฉพาะตอนเปิด Inventory จึงค่อยเจาะ Resource นั้น
⑪ Garage ต้องทดสอบอย่างไร?
ลอง
เปิด Garage
↓
โหลดรายชื่อรถ
↓
Preview
↓
Spawn Vehicle
↓
Store Vehicle
แล้วดูว่า CPU Spike เกิดตรงขั้นตอนไหน
ช่วยแยกระหว่าง
UI
Vehicle Script
Streaming
Server Response
ได้ดีขึ้น
⑫ HUD ต้องดูตอนขับรถด้วย
HUD บางตัว Idle เบามาก
แต่ตอนเข้า Vehicle เริ่ม Update
Speed
Fuel
Gear
RPM
Seatbelt
Engine
ทุก Frame
CPU จึงเพิ่มขึ้นเฉพาะตอนขับรถ
⑬ Script ที่ใช้ Wait(0) มักต้องตรวจ
ตัวอย่าง:
CreateThread(function()
while true do
Wait(0)
-- logic
end
end)
Wait(0) ไม่ได้ผิดเสมอ
แต่หมายถึง Logic ทำงานถี่มาก
ถ้างานข้างในหนัก Resmon สามารถเห็นผลชัด
⑭ Wait(0) เหมาะกับอะไร?
เช่น
ตรวจ Input
Draw Marker บางกรณี
Render Text
Interaction ที่ต้องตอบสนองทุก Frame
แต่ไม่ใช่งานทุกอย่างต้องทำถี่ขนาดนี้
⑮ งานอะไรไม่ควร Wait(0)?
ตัวอย่าง
ตรวจ Job
Refresh Player Data
เช็กสถานะระยะไกล
Scan ร้านทั้งหมด
Poll Config
Save Data
งานเหล่านี้มักใช้ Interval ที่ยาวกว่าได้
⑯ Adaptive Sleep ช่วยลด Resmon
แทนที่จะทำ
Wait(0)
ตลอดเวลา
สามารถใช้แนวคิด
อยู่ไกลจุด Interaction
→ Wait 1000
เข้าใกล้
→ Wait 250
อยู่ในระยะใช้งาน
→ Wait 0
ช่วยลด Client CPU ตอนผู้เล่นไม่ได้ใช้ Feature
⑰ Distance Check จำนวนมากทำ Resource หนักได้
สมมติ Resource มี 500 จุด
แล้วทำ
ทุก Frame
↓
คำนวณระยะทางผู้เล่นกับ 500 จุด
จะมี Calculation จำนวนมาก
ควรใช้
Zone Systems
Spatial Filtering
Cache จุดใกล้เคียง
ตามความเหมาะสม
⑱ GetGamePool หรือ Entity Scan ต้องระวัง
Script ที่ Scan
Vehicles
Peds
Objects
จำนวนมากทุก Frameสามารถทำ Client หนัก
โดยเฉพาะพื้นที่ที่มี Entity เยอะ
⑲ Resource เบาตอนเมืองโล่งแต่อาจหนักตอนเมืองคนเยอะ
Resource ที่ Loop Entities อาจแสดง
พื้นที่โล่ง → ต่ำ
กลางเมือง → สูง
จึงต้องทดสอบหลาย Location
⑳ ทดสอบพื้นที่ที่ผู้เล่นรวมตัว
เช่น
โรงพยาบาล
สถานีตำรวจ
Garage กลาง
Event Area
เพราะ Client ต้องจัดการ Player/Vehicle/Entity มากขึ้น
Resource ที่ Scale ตาม Entity Count จะเห็นปัญหาชัดตรงนี้
㉑ Resmon ใช้หา Server CPU สูงได้ไหม?
ไม่ใช่เครื่องมือหลัก
Resmon ตามเอกสาร Cfx.re เป็น Resource Monitor ฝั่ง Client
ถ้า FXServer CPU สูง ให้ใช้
Server Profiler
txAdmin
Server Metrics
แทน
㉒ ทำไมต้องแยก Client กับ Server?
Resource หนึ่งตัวอาจประกอบด้วย
client.lua
server.lua
html/
Resmon อาจแสดง Client เบา
แต่ server.lua กิน CPU มาก
หรือกลับกันก็ได้
จึงไม่ควรสรุปทั้ง Resource จาก Resmonอย่างเดียว
㉓ Server Lag แต่ Resmon ปกติเกิดได้ไหม?
ได้
ตัวอย่าง:
FPS = 100
Resmon = ปกติ
แต่
Inventory ตอบช้า
Garage Delay
เงินเข้าช้า
อาจเป็น
Server Hitch
SQL
Server Resource
ต้องตรวจฝั่ง FXServer
㉔ Client FPS ต่ำแต่ Server ลื่นก็เกิดได้
ถ้า
HUD หนัก
NUI หนัก
Vehicle Pack หนัก
MLO หนัก
Client Loop หนัก
Server CPU อาจต่ำมาก แต่ Player ยัง FPS ต่ำ
นี่คือเหตุผลที่ Resmon มีประโยชน์
㉕ Resmon กับ Profiler ต่างกันอย่างไร?
Resmon
ดูภาพรวม Resource CPU/Memory ได้รวดเร็ว
Profiler
เจาะลึกถึง Timeline, Resource Tick และ Code ที่ใช้เวลามาก
Workflow ที่ดีคือ
Resmon
↓
พบ Resource ต้องสงสัย
↓
Profiler
↓
หา Thread / Code
㉖ เมื่อไรควรเปลี่ยนจาก Resmon ไป Profiler?
เมื่อรู้แล้วว่า Resource ใดสูง แต่ยังไม่รู้ว่า
Function ไหน
Thread ไหน
บรรทัดไหน
เป็นตัวการ
Profiler ถูกออกแบบมาสำหรับเจาะลึกตรงนี้
㉗ FiveM Profiler ใช้ Client ได้ไหม?
ได้
เอกสาร Cfx.re ระบุว่า Profiler สามารถใช้ทั้ง
Server-side
Client-side
ฝั่ง Client เหมาะกับหา FPS Drop หรือ Micro-stutter ที่ต้องลงลึกกว่า Resmon
㉘ เริ่ม Client Profiler อย่างไร?
เปิด F8 Console แล้วใช้แนวคิด
profiler record <frames>
จากนั้นตรวจ Profile ตาม Workflow ที่ Cfx.re รองรับใน Runtime นั้น
Resmon ใช้ค้นหา Candidate
Profiler ใช้พิสูจน์ Root Cause
㉙ Profiler หาได้ถึงบรรทัด Code ไหม?
Documentation ของ Cfx.re แสดงตัวอย่างการเจาะ Resource Tick ไปถึง
Resource
File
Line
ที่ทำให้ CPU Time Spike
จึงเหมาะมากเมื่อ Developer มี Source
㉚ Resmon สูงเฉพาะตอนกดปุ่มบอกอะไร?
เป็นสัญญาณที่ดีในการ Reproduce
เช่น
กด F2
↓
Inventory เปิด
↓
Resource CPU Spike
จากนั้น Profile ช่วงการเปิด Inventoryโดยตรง
㉛ Resmon สูงตลอดเวลาน่ากังวลกว่าไหม?
โดยทั่วไป Resource ที่ Idle แล้วใช้ CPU ต่อเนื่องมากควรได้รับการตรวจ
เพราะมันกำลังใช้ Processing แม้ Feature ไม่ได้ถูกใช้งาน
ถามว่า
ทำไม Resource นี้ต้องทำงานตลอดเวลา?
㉜ CPU Spike สั้น ๆ ผิดเสมอไหม?
ไม่
บาง Feature จำเป็นต้องทำงานหนักชั่วคราว เช่น
เปิด UI ใหญ่
Initial Load
Generate Data
สิ่งสำคัญคือ
Spike นานไหม
เกิดบ่อยไหม
FPS ร่วงไหม
㉝ ค่าเฉลี่ยต่ำแต่ Spike สูงยังมีปัญหาได้
ตัวอย่าง
ปกติ → ต่ำ
ทุก 3 วินาที → Spike
ผู้เล่นอาจรู้สึก Micro-stutter
ค่า Average อย่างเดียวอาจซ่อนปัญหา
Profiler ช่วยเห็น Timeline ได้ดีกว่า
㉞ Micro-stutter คืออะไร?
คือเกมกระตุกช่วงสั้น ๆ ซ้ำ ๆ
FPS Average อาจยังสูง
เช่น
120
118
30 ← Spike
120
117
35 ← Spike
ผู้เล่นจะรู้สึกว่าภาพไม่ Smooth
㉟ Resource ที่ใช้ Timer ทุกวินาทีอาจทำ Micro-stutter
เช่นทุก 1 วินาทีทำ
Entity Scan
JSON Encode
Distance Loop
UI Update
ถ้างานหนักพอจะเกิด Spike เป็นจังหวะ
㊱ JSON ใหญ่ทำ Client CPU สูงได้
ตัวอย่าง Resource สร้างข้อมูลใหญ่
Player Data
Inventory
Vehicle List
แล้ว Encode/Decode ถี่ ๆ
จะใช้ CPU และสร้าง Allocation เพิ่ม
ควรส่งเฉพาะข้อมูลที่จำเป็น
㊲ NUI ทำให้ Resmon สูงได้ไหม?
Resource ที่มี NUI สามารถสัมพันธ์กับ Client Performance ได้
แต่ Resmon เพียงอย่างเดียวอาจไม่บอกว่า JavaScript ในหน้า Web ตรงไหนหนัก
หากสงสัย NUI ให้ใช้ NUI DevTools เพิ่ม
㊳ เปิด NUI DevTools อย่างไร?
FiveM มี Console Command
nui_devtools
สำหรับเปิด NUI Developer Tools
เหมาะกับตรวจ
JavaScript
DOM
Network
Memory
Rendering
ของ UI
㊴ Phone เป็น Resource ที่ควรตรวจ NUI
Phone มักประกอบด้วย
FiveM Client Script
+
NUI JavaScript
+
HTML/CSS
+
Server Data
จึงสามารถหนักได้หลาย Layer
Resmon เป็นเพียงจุดเริ่ม
㊵ HUD Update ทุก Frame ต้องระวัง
เช่นส่ง
money = 5000
job = police
ไป NUI ทุก Frameทั้งที่ค่าไม่เปลี่ยน
เป็นงานซ้ำที่หลีกเลี่ยงได้
ควร Update UI เมื่อ Data เปลี่ยน
㊶ Speedometer อาจต้อง Update ถี่กว่า Money
ข้อมูลแต่ละชนิดมี Frequency Requirement ต่างกัน
Speed
ต้อง Refresh ค่อนข้างถี่
Money
Refresh เฉพาะเมื่อเงินเปลี่ยน
Optimization ที่ดีแยก Frequency ตามข้อมูล
㊷ Memory ใน Resmon ต้องดูด้วย
Resource Monitor ไม่ได้มีเพียง CPU
Cfx.re ระบุว่ามันแสดง Memory Usage ต่อ Resource ด้วย
Resource ที่ Memory เพิ่มต่อเนื่องควรได้รับการตรวจ
㊸ Client Memory สูงคือ Memory Leak ไหม?
ไม่เสมอ
Resource อาจ Load
Images
UI Data
Cache
เพิ่มตอนใช้งาน
สิ่งที่ต้องดูคือ Trend
เปิด/ปิด Feature ซ้ำ
↓
Memory เพิ่มทุกครั้ง
↓
ไม่กลับมามีขอบเขต
แบบนี้จึงน่าสงสัย
㊹ ทดสอบ Phone Memory Leak อย่างไร?
ตัวอย่าง:
เปิด Phone
↓
ปิด
↓
เปิด
↓
ปิด
↓
ทำซ้ำ 30 ครั้ง
ดูว่า Resource Memory โตต่อเนื่องหรือ Stable
ถ้าโตทุก Cycle ควรตรวจ
Event Listener
DOM
Images
Cache
㊺ Map Resource สูงใน Resmon หมายถึง Map หนักเสมอไหม?
ไม่ควรสรุปทันที
Streaming Asset Performance มีหลาย Layer
เช่น
GPU
VRAM
Geometry
Texture
Collision
Resmon เน้น Script Resource CPU/Memory ไม่ได้แทน GPU Profiler ทั้งหมด
㊻ รถ High-poly อาจ FPS ต่ำแต่ Resmon ไม่สูง
ได้
เพราะปัญหาอาจอยู่ที่
Rendering
GPU
VRAM
Streaming
ไม่ใช่ Client Script CPU
ดังนั้น
FPS ต่ำ + Resmon ปกติ
ไม่ได้แปลว่าไม่มีปัญหา
ให้ตรวจ Assets ต่อ
㊼ MLO ก็เช่นเดียวกัน
ถ้า FPS ต่ำเฉพาะ MLO หนึ่งแห่ง แต่ Resource CPU ปกติ
ให้ตรวจ
Polygon
LOD
Texture
Collision
Lights
ไม่ควรโทษ Lua Scriptทันที
㊽ Texture 4K มีผลกับ Resmon ไหม?
ผลหลักมักไปที่
VRAM
Streaming
Rendering
มากกว่า Script CPU
Resmon จึงไม่ใช่เครื่องมือเดียวสำหรับ Asset Optimization
㊾ Resmon ไม่ได้วัด Ping
ถ้าผู้เล่นกระตุกเพราะ Network
Resmon อาจปกติทั้งหมด
ใช้เครื่องมือ Network เช่น netgraph เมื่อเหมาะสม
FiveM มี Console Command สำหรับแสดงข้อมูล Packet/Network
㊿ Resmon ไม่ได้วัด Server SQL
ถ้า Garage ใช้เวลา 5 วินาทีเพราะ Database Query ช้า
Client Resource อาจใช้ CPU ต่ำ
ต้องตรวจ
Client
↓
Server Event
↓
SQL
↓
Response
ทั้ง Flow
51. Resource สูงหลังติดตั้ง Script ใหม่ต้องทำอย่างไร?
เปรียบเทียบ
ก่อนติดตั้ง
↓
Resmon Baseline
หลังติดตั้ง
↓
Resmon ใหม่
โดยใช้
Location เดียวกัน
Player Count ใกล้เคียง
Feature เดียวกัน
ช่วยทำ Performance Regression Test
52. อย่าเปรียบเทียบคนละสถานการณ์
เช่น
ก่อน → อยู่ทะเลทรายคนเดียว
หลัง → Event กลางเมือง 100 คน
แล้วสรุปว่า Script ใหม่ทำ FPS ตก
ต้องควบคุม Test Scenario
53. ปิด Resource แล้ว FPS ดีขึ้นเป็นหลักฐานไหม?
เป็น เบาะแสที่ดี
บน Test Server สามารถ
วัด FPS/Resmon
Stop Resource
ทดสอบใหม่
Start Resource
Reproduce
ถ้า Pattern กลับมาเหมือนเดิมจึงน่าเชื่อถือขึ้น
54. อย่าปิด Resource Production แบบสุ่ม
โดยเฉพาะ
Framework
Inventory
Character
Core Libraries
ควรใช้ Development/Staging Server
เพื่อไม่กระทบผู้เล่นและข้อมูล
55. Resource Dependency ต้องคิดด้วย
สมมติ Resource A สูง
แต่ A ถูก Resource B เรียก Export 500 ครั้งต่อ Frame
Root Cause อาจอยู่ B
Profiler และ Source Audit จะช่วยเห็น Call Pattern
56. Framework ไม่ได้ทำให้ Resmon สูงเสมอ
Server ใช้ ESX/QBCore/Qbox แล้ว FPS ต่ำ
ไม่ได้หมายความว่า Framework Core เป็นต้นเหตุ
Third-party Resource รอบ Framework อาจเป็นตัวปัญหา
ต้องวัดทีละ Resource
57. ox_lib หรือ Library กลางอาจถูกเรียกจากหลาย Script
หาก Library ดูมี Activity สูง ให้ตรวจว่า Resource ใดเรียกมัน
อย่ารีบลบ Dependency กลางโดยไม่หา Caller
58. Resource จำนวนมากทำ FPS ต่ำเสมอไหม?
ไม่
จำนวน Folder ไม่ใช่ตัววัด Performance
Server มี 200 Resources ที่ Idle อย่างมีประสิทธิภาพอาจเบากว่า Server 50 Resources ที่มี Heavy Loops
ต้องดู Runtime Behavior
59. Resource ทุกตัวเล็กน้อยรวมกันก็หนักได้
แม้ไม่มี Resource ตัวเดียวสูงมาก
ถ้ามี
Resource 1 → เล็กน้อย
Resource 2 → เล็กน้อย
...
Resource 100 → เล็กน้อย
Total Client Script Time ยังสามารถสูง
Optimization จึงต้องมองทั้ง
Top Offender
Total Workload
60. ตั้ง Performance Budget ได้
ทีม Developer สามารถกำหนดว่า Resource ใหม่ต้อง
Idle ต่ำ
ไม่มี Loop ไม่จำเป็น
ไม่มี Event Spam
ไม่มี Memory Growth
ผ่าน Resmon Test
ผ่าน Profiler เมื่อมี Spike
ก่อน Merge เข้า Production
61. ทดสอบเครื่องสเปกกลางด้วย
Developer PC ที่แรงมากอาจไม่รู้สึกปัญหา
แต่ Player Community อาจใช้
CPU รุ่นกลาง
GPU รุ่นกลาง
RAM จำกัด
Resource ที่ Developer ได้ 150 FPS อาจทำเครื่องผู้เล่นตกเหลือ 45 FPS
ควรมี Test Hardware หลายระดับ
62. FPS ต้องดูคู่กับ Resmon
ตัวอย่าง:
ก่อนเปิด Phone
FPS = 120
เปิด Phone
FPS = 70
Resource phone CPU เพิ่มชัดเจน
เป็น Correlation ที่ควรตรวจต่อ
ดีกว่าดู CPU Numberโดยไม่มีผลต่อ Gameplay
63. Memory ต้องดูคู่กับเวลาที่เปิด Server
เช่น
เข้า Serverใหม่ → 80 MB
เล่น 1 ชั่วโมง → 90 MB
เล่น 4 ชั่วโมง → 95 MB
อาจ Stable
แต่
80
150
300
600 MB
ต่อเนื่องต้องตรวจ
64. Resmon ใช้ตรวจทุก Resource ก่อนเปิด Server ได้ไหม?
ควรทำ
อย่างน้อย Resource สำคัญ เช่น
HUD
Phone
Inventory
Target
Garage
Jobs
Police
Vehicle Scripts
ควรผ่าน Client Performance Test
65. วิธีทดสอบ Resource ใหม่อย่างเป็นระบบ
ขั้นที่ 1
วัด Baseline ก่อน Start
ขั้นที่ 2
Start Resource
ขั้นที่ 3
ดู Idle Resmon
ขั้นที่ 4
ใช้งาน Feature ทุกส่วน
ขั้นที่ 5
ดู CPU Spike
ขั้นที่ 6
ดู Memory
ขั้นที่ 7
เดินทางไปพื้นที่ Entity เยอะ
ขั้นที่ 8
ทดสอบหลาย Player
ขั้นที่ 9
Profiler หากพบ Spike
ขั้นที่ 10
แก้และทดสอบซ้ำ
66. Multiplayer Test สำคัญ
Script อาจเบาตอน Player คนเดียว
แต่หนักเมื่อ
Player 20 คนอยู่ใกล้กัน
Vehicles จำนวนมาก
Blips จำนวนมาก
Target Entities จำนวนมาก
ต้องทดสอบ Scenario ที่ใกล้ Production
67. Police GPS เป็นตัวอย่างที่ดี
ระบบอาจวาด
Blips
Names
Locations
ของเจ้าหน้าที่หลายสิบคน
ถ้า Update ทุก Frameโดยไม่จำเป็น Client CPU อาจเพิ่ม
ใช้ Update Frequency ที่เหมาะสม
68. Target System ต้องทดสอบ Entity เยอะ
Target Resource อาจตรวจ
Entity
Bones
Zones
Options
จำนวนมาก
ทดสอบในพื้นที่ที่มี Object/Vehicle เยอะ ไม่ใช่เฉพาะ Baseplate โล่ง ๆ
69. Vehicle Script ต้องทดสอบหลายคัน
Resource ที่ตรวจรถใกล้ Player อาจเบาตอนมีรถ 2 คัน
แต่หนักตอน Parking Area มี 100 คัน
ต้อง Test Scaling
70. ถ้า Resmon Access Denied ต้องทำอย่างไร?
Documentation รุ่นทั่วไปของ Cfx.re ระบุว่า Developer Mode อาจจำเป็นสำหรับคำสั่งบางกรณี
แต่ต้องแยก Legacy กับ Enhanced ให้ถูกต้อง
สำหรับ Enhanced คำสั่ง Developer Mode แบบ Legacy
+set moo 31337
ถูกถอดออกแล้ว
Enhanced ใช้ Server-side
sv_devMode true
สำหรับการเปิด Client Developer Tools ตามระบบใหม่
จึงไม่ควร Copy วิธีเปิด Dev Mode จากคู่มือ Legacy มาใช้กับ Enhanced โดยตรง
71. sv_devMode ควรเปิด Production ไหม?
ไม่ควรเปิดแบบไม่เข้าใจผล
Developer Mode เป็นเครื่องมือสำหรับ Development/Testing
Server Owner ควรเปิดใน Environment สำหรับทดสอบ หรือให้สิทธิ์ Developer ตาม Workflow ที่ Platform รองรับ
อย่าใช้ Dev Mode เป็น Production Optimization Setting
72. FxDK มี Resource Monitor ด้วยไหม?
มี
Cfx.re ระบุว่า FXCode/FxDK มี Combined Game and Server Resource Monitors
เหมาะกับ Developer ที่ต้องการ Environment สำหรับ
Code
Game
Console
Resource Monitoring
ใน Workspace เดียว
แต่ Resmon ใน Client ยังคงเป็นวิธีรวดเร็วมากสำหรับตรวจ Resource ระหว่างเล่น
73. Resmon ใช้แทน Code Review ได้ไหม?
ไม่
Resmon บอกว่า Resource “หนัก”
แต่ Code Review บอกว่า “ทำไมหนัก”
ตัวอย่างต้องตรวจ
Loops
Timers
Natives
Entity Scans
NUI Messages
Data Processing
ร่วมกัน
74. Resmon ใช้แทน Profiler ได้ไหม?
ไม่
ให้ใช้เป็นคู่กัน
Resmon
→ หา Resource
Profiler
→ หา Code
เป็น Workflow ที่มีประสิทธิภาพที่สุดสำหรับ Client Script Performance
75. Checklist หา Script กินเครื่องด้วย Resmon
เริ่มต้น
เข้า Server
เปิด F8
resmon true
Baseline
ยืน Idle
จด FPS
ดู CPU
ดู Memory
Functional Test
เปิด HUD/Phone/Inventory
ใช้ Garage
ขับรถ
เข้า MLO
Scaling Test
Player เยอะ
Vehicle เยอะ
Entity เยอะ
ถ้าพบปัญหา
จด Resource
Reproduce
ใช้ Profiler
ตรวจ Source
แก้
Test ซ้ำ
76. สิ่งที่ไม่ควรทำกับ Resmon
หลีกเลี่ยง
ตัดสินจาก Snapshot 1 วินาที
เชื่อว่า 0.00 ms = สมบูรณ์
ใช้ Resmon หา Server SQL
ใช้ Resmon แทน GPU Diagnosis
โทษ Resource เพียงเพราะชื่อ Framework
ปิด Resource Production แบบสุ่ม
ดูเฉพาะ Idle
ไม่ทดสอบ Feature
ไม่ดู Memory
ไม่ใช้ Profiler ต่อเมื่อเจอ Spike
Resmon เป็นเครื่องมือวัด ไม่ใช่คำตอบทั้งหมด
77. คำถามที่พบบ่อย
FiveM Resmon คืออะไร?
Resource Monitor สำหรับตรวจ CPU และ Memory Usage ของ Resource ฝั่ง Client
เปิด Resmon อย่างไร?
resmon true
ปิดอย่างไร?
resmon false
Resmon ใช้ดู Server CPU ได้ไหม?
ไม่ใช่เครื่องมือหลัก ให้ใช้ Server Profiler, txAdmin และ Metrics
Resmon ช่วยหา FPS ตกได้ไหม?
ได้ โดยช่วยหา Resource ฝั่ง Client ที่ใช้ Processing มากผิดปกติ
Resmon ดู RAM ได้ไหม?
แสดง Memory Usage ต่อ Resource ฝั่ง Client
Resource 0.00 ms หมายความว่าดีแน่นอนไหม?
ไม่ ต้องทดสอบตอน Feature ทำงานและดู Spike/Memory เพิ่มเติม
Resmon สูงต้องลบ Script ไหม?
ไม่ ควรใช้ Profilerและตรวจ Source ก่อน
FPS ต่ำแต่ Resmon ปกติเป็นเพราะอะไร?
อาจเกิดจาก GPU, Maps, MLO, Vehicles, Textures, NUI หรือ Network/Server Problem
Profiler ต่างจาก Resmon อย่างไร?
Resmon ใช้หา Resource ต้องสงสัย ส่วน Profiler ใช้เจาะถึง Thread/File/Code ที่สร้าง Performance Spike
78. สรุป FiveM Resmon คืออะไร? วิธีหา Script กินเครื่อง
FiveM Resmon คือเครื่องมือ Resource Monitor ฝั่ง Client ที่แสดง CPU Usage และ Memory Usage ของ Resource แต่ละตัว
เปิดง่าย ๆ ด้วย
resmon true
และปิดด้วย
resmon false
สิ่งสำคัญที่สุดคือ อย่าเปิด Resmon แล้วดูเพียงตอนผู้เล่นยืนเฉย ๆ
ต้องทดสอบ Resource ในสถานการณ์จริง เช่น
HUD → ขับรถ
Phone → เปิดและใช้งาน App
Inventory → ย้าย/ใช้ Item
Garage → Spawn รถ
Police → เปิด GPS
Target → เข้าเขต Entity จำนวนมาก
จากนั้นมองหา
CPU สูงต่อเนื่อง
CPU Spike เป็นจังหวะ
Memory เพิ่มไม่หยุด
และความสัมพันธ์กับ FPS
ถ้าพบ Resource ต้องสงสัยแล้ว ขั้นตอนต่อไปคือใช้ Profiler เพื่อเจาะจาก Resource ลงไปถึง Thread, File และ Code ที่ใช้เวลาประมวลผลมาก
ต้องจำด้วยว่า Resmon ไม่สามารถตอบปัญหาทุกอย่างได้
Server CPU สูง
→ Server Profiler / txAdmin
Server Hitch
→ Profiler
SQL ช้า
→ Database Monitoring
Ping สูง
→ Network
รถ/MLO หนัก
→ Asset/GPU Optimization
NUI หนัก
→ Resmon + NUI DevTools
สำหรับ FiveM Enhanced ยังต้องระวังเรื่อง Developer Mode เพราะคำสั่ง Legacy +set moo 31337 ถูกถอดออกแล้ว และ Client Developer Tools เปลี่ยนมาอาศัย sv_devMode ฝั่ง Server
แนวทางที่ comsiam แนะนำคือ
Resmon
↓
หา Resource ที่ผิดปกติ
↓
Reproduce Feature
↓
เปรียบเทียบ FPS / CPU / Memory
↓
Profiler
↓
หา Thread / Code
↓
แก้ Loop / Entity Scan / NUI / Data Processing
↓
Test Again
↓
Staging
↓
Production
จำง่าย ๆ:
Resmon → Client Resource Monitor
CPU → ดูเวลาประมวลผลของ Resource
Memory → ดูแนวโน้ม ไม่ใช่ Snapshot เดียว
0.00 ms → ไม่ได้พิสูจน์ว่า Resource สมบูรณ์
Spike → ต้อง Reproduce
รู้ Resource แต่ไม่รู้ Code → ใช้ Profiler
Server CPU → อย่าใช้ Resmon เป็นเครื่องมือหลัก
FPS ต่ำแต่ Resmon ปกติ → ตรวจ Assets/GPU/NUI/Network ต่อ
Resmon จึงเป็นหนึ่งในเครื่องมือที่ Developer FiveM ควรใช้ทุกครั้งก่อนนำ Client Resource ใหม่ขึ้น Production เพราะช่วยให้รู้จากข้อมูลจริงว่า Script ตัวไหนกำลังสร้างภาระให้เครื่องผู้เล่น แทนการรอให้ Community เข้ามารายงานว่า “เข้า Server แล้ว FPS ตก”
Comments
Post a Comment