4.3 KiB
PERF : mesures de cadence de la build empaquetée (palier P1)
2026-10-15, lot OPT0, fiche B2. État : préparé, à éprouver. Aucun essai réel n'a été joué : ni le jeu, ni PresentMon n'ont été lancés pour écrire ces scripts. Les statistiques ont été vérifiées sur des CSV synthétiques seulement.
Ce qui est prêt
| Élément | Rôle |
|---|---|
Tools\Perf-P1.ps1 |
lance la build, capture PresentMon, ferme le jeu, calcule les statistiques ; -Simulation affiche les commandes sans rien lancer |
Tools\PresentMonStats.py |
lit le CSV de PresentMon 2.6.0, écrit presentmon-stats.json et .md ; compare à une référence ; juge seulement avec un fichier de seuils |
Tools\Tests\PresentMonStats.essais.* |
trois CSV synthétiques et un fichier de seuils d'exemple (valeurs sans portée réelle) |
| Recette | lp-perf\recettes\presentmon.md |
Chaque mesure va dans OPT\PERF\<date>-<etiquette>\ : presentmon.csv, presentmon-stats.json, presentmon-stats.md, lancement.txt.
Gestes de l'utilisateur (aucun agent ne les fait)
- Télécharger PresentMon 2.6.0 (console,
PresentMon-2.6.0-x64.exe) sur la page officielle de la release : https://github.com/GameTechDev/PresentMon/releases/tag/v2.6.0 . Relever le MD5 et le chemin. Ne pas utiliser 2.5.0 (retirée). - Ajouter son compte au groupe « Performance Log Users » (en français : « Utilisateurs du journal de performances »), puis fermer et rouvrir la session Windows. Sans cela, ou sans session administrateur, PresentMon ne voit pas le processus.
- Vérifier à blanc :
pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\Perf-P1.ps1" -Simulation -Etiquette essai -PresentMon "<chemin de PresentMon-2.6.0-x64.exe>". Toutes les lignes doivent être[OK].
Premier essai : il sert de mesure de référence de l'alpha
Le premier essai réel mesure la build alpha 2026.10.2.1a (D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping\Windows\LifePlay.exe, valeur par défaut de -Exe). Il demande une réserve « mesure » à Big Boss (lancer le jeu). Aucune charge de scène n'est imposée par le script : fixer à la fiche la carte, le point de départ et les gestes, et les garder identiques pour toute comparaison.
pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\Perf-P1.ps1" -Etiquette alpha-ref -PresentMon "<chemin de PresentMon-2.6.0-x64.exe>" -Duree 120
À savoir :
- Le processus mesuré est
LifePlay-Win64-Shipping.exe, pas le lanceurLifePlay.exe; le script le gère (-NomProcessuspour le forcer). - Pour passer des arguments au jeu sous
pwsh -File, utiliser la forme"-Arguments:-windowed -ExecCmds=...". - Correctif B2-bis : lancer pwsh en administrateur (contrôle bloquant). Le jeu se relançant seul, le script attend le PID Shipping le plus récent avec fenêtre, vivant depuis
-Delais (60 par défaut), puis capture avec--process_id(-RepliNompour--process_name). Le nombre d'événements perdus figure danslancement.txtetpresentmon-stats.md; un nombre élevé invalide la mesure. - Si le jeu ne se ferme pas en 15 s, le script le tue et le dit.
- À contrôler au premier essai : forme exacte des options de PresentMon sur l'exécutable installé (
--help), code de sortie de PresentMon, fermeture propre du Shipping. - Le script refuse de lancer si un
presentmon.csvexiste déjà dans la sortie ou si le jeu tourne déjà.
Fixer les seuils à partir de cette référence
Aucun seuil standard n'existe et le script n'en invente aucun : sans -Seuils, le verdict est « non jugé » (code 0).
- Répéter l'essai de référence au moins 3 fois dans les mêmes conditions ; lire la dispersion des mesures de
presentmon-stats.json. - Écrire un fichier JSON de seuils (clés acceptées :
fps_moyen_min,fps_1pct_low_min,fps_01pct_low_min,mediane_ms_max,p95_ms_max,p99_ms_max,saccades_2x_max,saccades_50ms_max,gpu_busy_ms_max,images_min), valeurs tirées de la référence et de sa dispersion, et décidées par l'utilisateur ou la fiche. - Les passer par
-Seuils; garder la référence avec-Reference <presentmon-stats.json>pour lire les écarts. - Un seuil non évaluable (colonne absente) donne « indéterminé » et le code 2.
Le premier jeu de chiffres réels fera passer la recette de « préparé, à éprouver » à « éprouvée » (proposition à la fiche).