LifePlay-Revival/Docs/Migration/etat/OPT/PERF/LISEZMOI.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

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)

  1. 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).
  2. 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.
  3. 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 lanceur LifePlay.exe ; le script le gère (-NomProcessus pour 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 -Delai s (60 par défaut), puis capture avec --process_id (-RepliNom pour --process_name). Le nombre d'événements perdus figure dans lancement.txt et presentmon-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.csv existe 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).

  1. 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.
  2. É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.
  3. Les passer par -Seuils ; garder la référence avec -Reference <presentmon-stats.json> pour lire les écarts.
  4. 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).