Info
Comment le profileur fonctionne, ce que signifient les mesures et comment lire les résultats.
FiveM intègre un profileur au niveau du runtime C++. Lancez profiler record 300 dans la console txAdmin : l’ordonnanceur Citizen Lua mesure automatiquement les ticks des threads et ressources, sans modifier vos scripts.
Le nom de la ressource reste visible même si son code est escrowé. Le profileur peut donc identifier la ressource sans révéler son code source.
À la fin de l’enregistrement, exportez le profil avec profiler saveJSON monprofil, puis importez ce fichier dans HTS Tools.
Un serveur FiveM vise 20 ticks par seconde, soit un cycle toutes les 50 ms. Les threads, événements et commandes des ressources s’exécutent au fil de ce cycle.
HTS Tools regroupe les événements en ticks à partir des intervalles de la trace. Un écart supérieur à 15 ms entre événements démarre un nouveau groupe. La durée affichée correspond au temps Lua mesuré dans ce tick, pas à une mesure indépendante de la charge complète du serveur.
Quelques millisecondes laissent de la marge au réseau et à la synchronisation des entités. À mesure que le temps script approche de 50 ms, cette marge diminue.
Un tick est signalé comme lourd quand son temps script dépasse 25 ms, soit la moitié du budget. Ces ticks sont les moments à examiner en priorité lorsque les joueurs signalent des ralentissements.
La chronologie colore les ticks selon leur durée. Survolez une barre pour voir les principales ressources exécutées pendant ce tick.
Temps CPU cumulé sur toute la capture. Une ressource peut apparaître ici parce qu’elle tourne souvent, longtemps, ou les deux.
Pire temps mesuré sur un tick pour cette ressource. Une seule pointe peut être masquée par une moyenne faible.
Présence parmi les ressources les plus coûteuses des ticks lourds. Une ressource peut contribuer aux hitches sans être la plus lente à chaque fois.
Le lecteur extrait les informations disponibles dans le minidump : exception, adresse fautive, module chargé et offset. Des gamelogs associés peuvent apporter le contexte du build.
Une analyse reste partielle si le dump ne contient pas les modules ou symboles nécessaires. Les adresses non résolues restent affichées; aucune cause racine n’est déduite sans preuve.
Le visualiseur Perfetto est hébergé sur ce domaine et ouvre la trace dans un Worker WebAssembly de votre navigateur. Il permet d’inspecter les pistes, les slices et les données prises en charge.
Les profils JSON de FiveM sont lus en compatibilité. Certains événements imbriqués peuvent être présentés différemment dans Perfetto et dans les métriques HTS.
Analyse locale
Le fichier est lu par un Worker. Seuls les résultats calculés sont conservés dans IndexedDB; les fichiers bruts ne sont pas téléversés.
Partage communautaire
Chaque partage demande un accord distinct et transmet uniquement des mesures agrégées et des noms de ressources anonymisés.
Symboles publics
La vérification demande un accord distinct. Les dumps, gamelogs et chemins locaux restent dans ce navigateur.
Perfetto
La trace est traitée dans le navigateur par le visualiseur auto-hébergé; elle n’est pas envoyée à ui.perfetto.dev.