6.6 KiB
DOC-Tracy : Tracy Profiler 0.14.1 (capture et export CSV)
Rédigé le 2026-10-15 par un sous-agent. Niveaux : établi (vu, URL ou fichier:ligne), estimé, incertain. Rien n'a été téléchargé.
Identité
- Version : 0.14.1, tag v0.14.1, publiée le 2026-08-22 (published_at 18:22 UTC, API GitHub). Pas une préversion. Établi.
- Page du tag : https://github.com/wolfpld/tracy/releases/tag/v0.14.1 ; API : https://api.github.com/repos/wolfpld/tracy/releases/tags/v0.14.1
- Manuel de cette version : asset tracy.pdf (1089752 octets) de la release, et source https://raw.githubusercontent.com/wolfpld/tracy/v0.14.1/manual/tracy.md (382703 caractères, consulté par tranches via un résumeur, les chapitres capture et csvexport ont été trouvés ; le PDF n'a pas été lu).
- Assets exacts : linux-0.14.1.zip (13445515), macos-0.14.1.zip (11395753), tracy.pdf (1089752), windows-0.14.1.zip (15968996). Contenu du zip Windows : non vérifié (voir Non établi).
- Notes de la release (résumé) : correctifs, nouvelles macros TRACY_NO_WAIT_STACKS et TRACY_ASSERT, documentation, fin de support du chargement des traces antérieures à 0.11.
- Licence : BSD à 3 clauses (R11-12) ; le moteur 5.8 en conserve deux copies de licence (voir plus bas).
- Chemin local dans le moteur : aucune doc ni source Tracy (voir section moteur).
Capture hors ligne : outil capture (établi)
Nom dans le manuel : tracy-capture (dossier capture du dépôt). Syntaxe lue dans capture/src/capture.cpp du tag (usage affiché : capture -o sortie.tracy [-a adresse] [-p port] [-f] [-s secondes] [-m limite]) et dans le manuel :
- -o fichier : sortie, obligatoire (sans lui : usage et code de sortie 1).
- -a adresse : adresse du programme profilé ; défaut 127.0.0.1 dans le code, localhost dans le manuel.
- -p port : défaut 8086 dans le code.
- -f : écrase une sortie existante (sinon code de sortie 4 ; sortie non inscriptible : 5).
- -s secondes : déconnexion automatique après la durée (défaut -1 = illimité).
- -m limite : plafond mémoire en pourcentage de la RAM (code : borné à 1-999 ; le manuel dit que plus de 100 % utilise le swap).
- Ctrl+C ou fin du minuteur : déconnecte puis enregistre ; sauvegarde compressée Zstd niveau 3 ; code de sortie 0 en succès, mais 0 aussi si l'enregistrement échoue (code) : ne pas se fier au code de sortie seul, vérifier le fichier.
- Le manuel décrit aussi tracy-capture-daemon (plusieurs clients ; options -o, -p défaut 8086, -m, --filter-name, --filter-port), non lu dans le code.
- Le programme profilé doit être compilé avec le client Tracy et écouter sur le port ; l'outil s'y connecte (estimé : le code appelle « serveur » l'hôte joint, le manuel dit « client » ; les deux désignent le programme profilé).
Export CSV : outil csvexport (établi)
Nom dans le manuel : tracy-csvexport (dossier csvexport). Syntaxe : un seul fichier .tracy en argument, résultat sur la sortie standard (à rediriger). Options (manuel et csvexport.cpp, accord) : -h/--help, -V/--version (code seul), -f/--filter nom, -c/--case, -s/--sep séparateur, -e/--self (temps propre), -u/--unwrap (une ligne par événement), -g/--gpu, -m/--messages, -p/--plot (avec -u seulement), -t/--truncated_mean [centile] (défaut 90, borné 1-99 ; la forme courte -t exige un argument dans le code).
Colonnes (code) : mode par défaut name, src_file, src_line, total_ns, total_perc, counts, mean_ns, min_ns, max_ns, std_ns (+ percentile_ns et truncated_mean_ns avec -t) ; mode -u : name, src_file, src_line, ns_since_start, exec_time_ns, thread, value ; mode -g : name, src_file, temps depuis le début, durée GPU ; mode -m : MessageName, total_ns.
Dans le moteur 5.8 local
- Code Tracy : introuvable. Aucun fichier au nom contenant tracy dans Engine\Source\ThirdParty hors licences ; aucune occurrence dans Engine\Source\Runtime\Core ni dans Engine\Source\Programs\UnrealBuildTool (Grep) ; Engine\Plugins\Performance sans fichier tracy. La recherche texte de l'ensemble de Plugins et ThirdParty a dépassé le délai : couverture partielle.
- Le moteur livre seulement deux textes de licence : Engine\Source\ThirdParty\Licenses\tracy_753956.license (URL .../blob/0753956/LICENSE, BSD 3 clauses, copyright 2017-2024) et tracy_v5479a42.license (.../blob/5479a42/LICENSE). Établi. Leur usage dans un module n'a pas été retrouvé (estimé : dépendance d'un outil ou plugin tiers, sans preuve).
- Interface FExternalProfiler : Engine\Source\Runtime\Core\Public\ProfilingDebugging\ExternalProfiler.h:15-31 (classe, fonction modulaire IModularFeature). Sélection du profileur actif (:76-97) par, dans l'ordre : argument -NomDuProfileur, variable d'environnement UE_EXTERNAL_PROFILER, [Core.ProfilingDebugging]:ExternalProfiler dans DefaultEngine.ini ; le nom doit égaler GetProfilerName(). Accès : GetActiveProfiler (:74), SetActiveProfilerRecording (:103) ; classes FExternalProfilerIncluder et Excluder (:183 et suivantes). Établi.
- Autre profileur externe présent : dossier Engine\Source\ThirdParty\SuperLuminal (établi par listage).
Écarts doc / code local
| Point | Doc ou BC | Constat | Niveau |
|---|---|---|---|
| Noms d'outils | manuel : tracy-capture, tracy-csvexport | code du tag : usage affiché capture ; csvexport.cpp affiche « extract » ; noms de binaires du zip Windows non vérifiés | établi (texte) |
| Adresse par défaut | manuel : localhost | code : 127.0.0.1 | établi |
| Port | manuel : -p « optionnel » | code : défaut 8086 | établi |
| Options de csvexport | manuel : liste de 10 options | code : en plus -V/--version | établi |
| Syntaxe non confirmée | R11-13 | Levée pour capture et csvexport (tag v0.14.1) | établi |
| Plugin Tracy du moteur | R11-15 : aucun plugin officiel trouvé | Confirmé côté moteur local : seulement deux licences, pas de code trouvé | établi (couverture partielle) |
| FExternalProfiler | R11-15 non vérifié | Existe : ExternalProfiler.h:19 ; sélection par nom, environnement ou config | établi |
| Code de sortie de capture | non documenté dans BC | code : 0 même si la sauvegarde échoue | établi |
Non établi
- Contenu du windows-0.14.1.zip (présence de tracy-capture.exe et tracy-csvexport.exe) : non listé.
- Lecture du tracy.pdf (équivalence avec tracy.md non vérifiée) ; chapitre capture-daemon relu en résumé seulement.
- Compatibilité de Tracy 0.14.1 avec UE 5.8 et coût d'intégration (aucun module ni build essayé).
- Où le moteur utilise les licences Tracy (code non retrouvé, recherche tronquée sur Plugins et ThirdParty).
- Fonctionnement de capture avec un jeu empaqueté en Test ou Shipping.
- Fonction MCP du manuel (save_trace) : mentionnée dans le manuel, non étudiée.