LifePlay-Revival/Docs/Migration/etat/OB/OBA/OBA-T4-INV.md

158 lines
20 KiB
Markdown
Raw Normal View History

Fiche OBA-T4 — Niveau N1 — Modèle prévu modèle de l'agent lp-inventory | utilisé Sonnet 5.5 (claude-sonnet-5-5) — Agent lp-inventory — Skills sk-protocol, sk-recount, lp-paths, sk-windows-shell
# OBA-T4-INV : coûts mesurés disponibles, base A/B du projet OB (2026-10-09)
Aucun build, cuisson, jeu ni éditeur lancé ; aucune modification hors ce livrable et le scratchpad. Conventions :
- « Mo » = Mio (1 048 576 octets, `1MB` de PowerShell) ; les octets exacts sont donnés quand ils comptent.
- Fuseau : les lignes `[2026.10.09-HH.MM.SS:mmm]` des journaux UE sont en **UTC** ; `Log file open, 10/09/26 18:43:02` et les dates de fichiers sont en **heure locale (UTC+2)**. Preuve : `LifePlay.log:1` (18:43:02) et `LifePlay.log:359` (16.43.03) ; `LifePlay.log:904` (`at 2026.10.09-18.43.06` local, même ligne que `16.43.06` UTC).
- Les journaux UAT de cuisson et d'empaquetage sont lancés avec `-NoLogTimes` (cuisson : `U8-T3_...log:13`) : **aucun horodatage de ligne**, les heures viennent des dates de fichiers (`.cmd` = début, `.log` = fin) et des fiches U8.
- Copies `_essai` : copies de contrôle, non additionnées aux totaux.
## 1. Commandes exactes
Interpréteur : `pwsh -NoProfile -File <script>` (appelé depuis Git Bash), scripts dans le scratchpad (lecture seule, aucune écriture hors scratchpad). Chemins de base `D:\Game\LifePlay_Build_5.8_<nom>`.
1. Existence : `Test-Path` sur `Shipping_U8`, `Development_U8`, `Development_U8_essai` ; `Get-ChildItem 'D:\Game' -Directory -Filter 'LifePlay_Build_5.8*'`.
2. Totaux : `$f = Get-ChildItem -LiteralPath $p -Recurse -File -Force ; ($f | Measure-Object Length -Sum)` pour `Shipping_U8`, `Development_U8`, `Development_U8_essai`, `Shipping_U8_essai`, `Shipping_U8_PDB`.
3. Fichiers ≥ 1 Mo : `$f | Where-Object { $_.Length -ge 1MB }` ; par extension : `$f | Group-Object Extension` ; 25 plus gros : `$f | Sort-Object Length -Descending | Select-Object -First 25` ; par dossier de premier niveau : `Get-ChildItem -Directory | ForEach { Get-ChildItem -Recurse -File | Measure-Object Length -Sum }`.
4. Détail conteneurs, exe, DLL, Plugins, Modules : `Get-ChildItem -Recurse -File` filtré sur `.pak .ucas .utoc .exe .pdb` et `-Filter *.dll` ; `Test-Path <build>\Windows\LifePlay\Plugins` ; `Measure-Object Length -Sum` sur `Content\Modules` et `Content\Modules\.git`.
5. Contenu cuit : mêmes mesures sur `D:\Game\LifePlay-master 5.8\Saved\Cooked\Windows\LifePlay`, `...\Saved\Cooked\Windows` et `...\Saved\StagedBuilds\Windows`.
6. Journaux : Read des `.cmd` et de `U8_Build_20261009-175553.log`, `U8_Build_20261009-181732.log` ; Grep (`output_mode: content`) sur `U8-T3_Cook_...log` (motif `Total execution time|took|Cooked packages|BUILD |ExitCode|executed for`, puis `LocalGetHitPct|LocalGetTotal`), `U8-T4_Package_...log` et `U8-T5b_Package_...log` (motif `Took .* to run|Command time|BuildCookRun time|BUILD |ExitCode|executed for|Writing and compressing|Total |Added .* files`), `LifePlay.log` (motif `Engine is initialized|Starting Game|index SPAWN|LogLoad|LogMemory|...`), `STM-T4c_EditorHeadless_...log` (motif `Engine is initialized|ModelContextProtocol|LogMemory|Loading editor|Engine Initialization`).
7. Dates des journaux : `Get-ChildItem '...\Saved\Logs\portage' | Where Name -match ... | LastWriteTime`.
8. Recoupement : lecture de `U8-T3-BUILD.md`, `U8-T4-BUILD.md`, `U8-T5b-BUILD.md` (dossier `etat\U58\U8`).
9. Journaux de jeu côté Shipping : `Get-ChildItem 'D:\Game\LifePlay_Build_5.8_Shipping_U8_essai' -Recurse -File -Include *.log`.
## 2. Comptes bruts
### 2.1 Taille des paquets (commande 2)
| Dossier | Fichiers | Octets | Mo |
|---|---|---|---|
| `LifePlay_Build_5.8_Shipping_U8` | 2 220 | 2 024 056 223 | 1 930,3 |
| `LifePlay_Build_5.8_Development_U8` | 2 242 | 2 611 936 183 | 2 490,9 |
| `LifePlay_Build_5.8_Shipping_U8_PDB` | 2 | 226 096 161 | 215,6 |
| `..._Development_U8_essai` (contrôle) | 2 271 | 2 624 014 130 | 2 502,5 |
| `..._Shipping_U8_essai` (contrôle) | 2 270 | 2 032 422 657 | 1 938,3 |
Fichiers ≥ 1 Mo (commande 3) : Shipping **14** (somme 1 913,2 Mo) ; Development **21** (somme 2 472,6 Mo).
Répartition Shipping : `LifePlay\` 1 915,0 Mo (2 206 fichiers) = `Content` 1 748,0 Mo (2 201) + `Binaries` 166,9 Mo (5) ; `Engine\` 12,9 Mo (10) ; racine de `Windows\` 2,4 Mo. Development : `LifePlay\` 2 430,8 Mo (`Binaries` 682,8 Mo, 6 fichiers ; `Content` 1 748,0 Mo, 2 201) ; `Engine\` 57,7 Mo (30).
### 2.2 Fichiers par build (commandes 3 et 4, octets exacts quand relevés)
| Fichier (`Windows\...`) | Shipping_U8 | Development_U8 |
|---|---|---|
| `LifePlay\Content\Paks\LifePlay-Windows.ucas` | 1 259 275 600 (1 200,9 Mo) | 1 259 275 600 (1 200,9 Mo) |
| `LifePlay\Content\Paks\LifePlay-Windows.utoc` | 1 575 606 | 1 575 606 |
| `LifePlay\Content\Paks\LifePlay-Windows.pak` | 20 218 516 | 20 227 353 |
| `LifePlay\Content\Paks\global.ucas` / `.utoc` | 3 397 984 / 818 | 3 397 984 / 818 |
| exe du jeu (`LifePlay\Binaries\Win64\`) | `LifePlay-Win64-Shipping.exe` 164 823 552 | `LifePlay.exe` 330 686 464 |
| `LifePlay.pdb` (dans le build) | absent (PDB à part : 226 096 161 o pour 2 fichiers) | 375 083 008 (357,7 Mo) |
| `LifePlay.exe` (lanceur, racine `Windows\`) | 301 568 | 301 568 |
| `Content\Modules` (2 195 fichiers) | 465 751 275 dont `.git` 450 763 872 (142 fichiers) | idem |
| `Content\Modules\.git\objects\pack\pack-e259cb6b....pack` | 429,2 Mo | 429,2 Mo |
| `Content\Movies\loading.mp4` | 78,9 Mo | 78,9 Mo |
| DLL (commande 4) | **11**, la plus grosse `GFSDK_Aftermath_Lib.x64.dll` 5 799 024 | **19**, la plus grosse `VkLayer_khronos_validation.dll` 19 509 136 ; 8 DLL Vulkan layers et `WinPixEventRuntime.dll` en plus |
Plugins : `Windows\LifePlay\Plugins` **absent** dans les deux builds (`Test-Path` → sortie « pas de dossier Plugins ») ; aucune DLL de plugin dans les builds (cible monolithique, `U8-T5b-BUILD.md:28` « DLL liées : 0 »). Pas de dossier `Saved`, `Cooked` ni `Logs` dans les deux builds sources (seul `Content\Modules\.git\logs` ressort de la recherche de noms `Saved|Cooked|Logs`).
Extensions Shipping (Mo) : `.ucas` 1 204,2 (2) ; `.pack` 429,2 (1) ; `.exe` 157,5 (2) ; `.mp4` 78,9 ; `.dll` 22,4 (11) ; `.pak` 19,3 ; `.jpg` 7,3 (20) ; `.lpscene` 4,1 (1 271) ; `.txt` 2,8 (34) ; `.lpworld` 1,6 (110) ; `.utoc` 1,5 (2).
Extensions Development (Mo) : `.ucas` 1 204,2 ; `.pack` 429,2 ; `.pdb` 357,7 ; `.exe` 315,7 (2) ; `.mp4` 78,9 ; `.dll` 61,6 (19) ; `.pak` 19,3 ; `.ttf` 5,1.
Parts du Shipping (octets exacts / 2 024 056 223) : `LifePlay-Windows.ucas` 62,2 % ; `Content\Modules` 465 751 275 = 23,0 % dont `.git` 450 763 872 = 22,3 % ; exe Shipping 8,1 % ; `loading.mp4` 78,9 Mo = 4,1 % (rapporté à 1 930,3 Mo).
### 2.3 Contenu cuit (commande 5)
| Dossier | Fichiers | Taille |
|---|---|---|
| `Saved\Cooked\Windows` (total) | 20 370 | 2 697 511 651 o |
| `Saved\Cooked\Windows\LifePlay` | 19 623 | 2 630 319 741 o (2 508,5 Mo) |
| `...\LifePlay\Content` | 19 612 | 2 489,9 Mo, dont `Heavy` 2 474,3 Mo (18 993 fichiers), `Characters` 5,3, `UI` 5,1, `BPs` 4,4 |
| `...\LifePlay\Metadata` | 8 | 14,1 Mo |
| `...\LifePlay\Plugins` | 2 | 40 189 o |
| `...\Windows\Engine` | 747 | 64,1 Mo |
| `Saved\StagedBuilds\Windows` | 2 242 | 2 611 936 183 o (= `Development_U8`, dernière mise en scène) |
Par extension (`LifePlay`) : `.uexp` 8 563 / 1 656,5 Mo ; `.ubulk` 2 488 / 810,4 Mo ; `.uasset` 8 562 / 23,0 Mo ; `.bin` 3 / 15,8 Mo. 453 fichiers ≥ 1 Mo. Plus gros : `Content\Heavy\StreetMap\Static\CentralLondon.uexp` 137,3 Mo ; `Heavy\Daz\Bridget\bridget_gp.uexp` 23,9 ; huit `Heavy\Daz\Bridget\Hairs\Pubic\Pubes0N.uexp` de 21,3 chacun ; `Heavy\New2\Furniture\fnt_decor14.uexp` 18,9 ; `Heavy\New2\Buildings\Mats\urban_street_03_1k.uexp` 16,0.
Manifestes : `Windows\Manifest_UFSFiles_Win64.txt` (1,9 Mo) dans chaque build ; ils listent des fichiers (non lus pour leurs tailles).
### 2.4 Durées de compilation, cuisson, empaquetage
| Étape | Valeur | Source |
|---|---|---|
| Compilation Shipping (U8-T2) | `Total execution time: 56.31 seconds` ; UBA local 52.49 s ; 3 actions ; `Result: Succeeded` | `U8_Build_20261009-175553.log:24,27,28` ; exe daté 17:56:48 local |
| Compilation Development (T5b) | `Total execution time: 55.07 seconds` ; UBA local 49.63 s ; `Result: Succeeded` | `U8_Build_20261009-181732.log:24,27,28` ; exe daté 18:18:26 local |
| Cuisson Shipping, commandlet | `Execution of commandlet took: 2m 28s (148.41 seconds), PeakPhysMemoryMB=9882 MB, PeakVirtMemoryMB=10171 MB` | `U8-T3_Cook_20261009-180541.log:569` |
| Cuisson, temps de tick | `Cook by the book total time in tick 138.482763s total time 147.401245` | `U8-T3_...log:338` |
| Cuisson, `UnrealEditor-Cmd.exe` | `Took 164,18s ... ExitCode=0` ; `Cook command time: 164.28 s` | `U8-T3_...log:580,581` |
| Cuisson, UAT | `BuildCookRun time: 166.38 s` ; `AutomationTool executed for 0h 2m 47s` ; `BUILD SUCCESSFUL` | `U8-T3_...log:583-586` |
| Cuisson, répartition | `LoadPackageForCooking: 87.940s (15680)` ; `SavingPackages: 29.560s (2503)` ; `WaitForAsync: 19.215s` ; `CookByTheBookFinished: 3.174s` | `U8-T3_...log:350,352,362,363` |
| Cuisson, paquets | `Packages Cooked: 8915, ... Skipped by Platform: 8, Total Packages: 8923` ; `Cooked packages 8923 Packages Remain 0 Total 8923` | `U8-T3_...log:340,317` |
| Cuisson, cache | `LocalGetTotal = 23747`, `LocalGetHitPct = 1.000000` (idem `ZenLocalGet`) ; `FULL COOK ... Deleting previously cooked packages` | `U8-T3_...log:501-502,507-508,252` |
| Cuisson, heures (locales) | `.cmd` 18:05:44 ; fiche : début 18:05:49, fin 18:08:37 ; fichiers cuits entre 18:06:07 et 18:11:51 (le dernier est `Crypto.json` écrit par T4) | `Get-ChildItem` ; `U8-T3-BUILD.md:17` |
| Empaquetage Shipping | `Stage command time: 34.43 s` ; `Archive command time: 19.07 s` ; `BuildCookRun time: 55.04 s` ; UAT `0h 0m 56s` | `U8-T4_Package_20261009-181137.log:242,246,248,250` |
| Empaquetage Shipping, outils | UnrealPak pak `Took 2,11s` (1 715 fichiers, 20 218 516 o) ; IoStore `Took 10,70s` dont `Writing and compressing took 6.21 seconds` | `U8-T4_...log:106,97,237,158` |
| Empaquetage Shipping, heures | début 18:11:45.40+02:00, fin 18:12:41.91+02:00 (fiche) ; `.cmd` 18:11:39, `.log` 18:12:41 | `U8-T4-BUILD.md:16` ; `Get-ChildItem` |
| Empaquetage Development | `Stage command time: 32.85 s` ; `Archive command time: 21.05 s` ; `BuildCookRun time: 55.34 s` ; UAT `0h 0m 56s` | `U8-T5b_Package_20261009-181853.log:242,246,248,250` |
| Empaquetage Development, outils | UnrealPak pak `Took 0,56s` (1 722 fichiers, 20 227 353 o) ; IoStore `Took 9,90s` dont `Writing and compressing took 5.59 seconds` | `U8-T5b_...log:106,97,236,157` |
| Empaquetage Development, heures | `.cmd` 18:19:00, `.log` 18:20:00 (locales) | `Get-ChildItem` |
| Compression | pak : `Compression summary: 45.83% of original size` ; IoStore : `LifePlay-Windows ... Raw Size 2539.07 MiB, Size 1200.94 MiB (52.70% Oodle)` ; `Total ... 1204.18` MiB ; Kraken niveau 4 | `U8-T4_...log:101,184,186,83` |
Paquets mis en conteneur : `Input: 8915 Packages` ; `Output: 180789 Name map entries` (`U8-T4_...log:219,228`) ; `Added 1715 entries` au pak (`:90`).
### 2.5 Démarrage du jeu (Development, copie `_essai`)
Journal : `D:\Game\LifePlay_Build_5.8_Development_U8_essai\Windows\LifePlay\Saved\Logs\LifePlay.log` (3 281 562 octets, `Log file open, 10/09/26 18:43:02`, fermé `18:46:02` local, l.52550). Origine des écarts : première ligne horodatée l.359 = `16.43.03:142` UTC.
| Jalon | Ligne | UTC | Écart à l.359 |
|---|---|---|---|
| `LogInit: Display: Game Engine Initialized.` | 890 | 16.43.05:658 | +2,516 s |
| `LogInit: Display: Starting Game.` | 893 | 16.43.05:749 | +2,607 s |
| `LogLoad: LoadMap: /Game/Scenes/CentralLondon?Name=Player` | 896 | 16.43.06:098 | +2,956 s |
| `LogLoad: Took 0.289756 seconds to LoadMap(/Game/Scenes/CentralLondon)` | 6151 | 16.43.06:388 | durée propre 0,290 s |
| `LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init()` | 6168 | 16.43.06:588 | **+3,446 s** |
| premier `index SPAWN (test0304)` | 8040 | 16.43.38:977 | +35,835 s (scénario d'essai, image 689 ; +32,389 s après `Engine is initialized`) |
Version affichée : `LogLifePlay: Display: Version affichee : LifePlay 2026.10.2.0` (l.886).
Essai précédent, même dossier : `LifePlay-backup-2026.10.09-16.30.43.log`, première ligne horodatée l.359 `16.29.33:042` ; `Starting Game.` l.892 `16.29.37:539` (+4,497 s) ; `Engine is initialized` l.6167 `16.29.38:606` (**+5,564 s**) ; fermé 18:30:43 local (l.6290). Build exact de cet essai : non établi.
Shipping : `Get-ChildItem 'D:\Game\LifePlay_Build_5.8_Shipping_U8_essai' -Recurse -File -Include *.log` → **0 résultat** : aucun journal de jeu Shipping, démarrage Shipping non mesurable (voir § 4).
### 2.6 Démarrage de l'éditeur (headless, serveur MCP)
Journal : `D:\Game\LifePlay-master 5.8\Saved\Logs\portage\STM-T4c_EditorHeadless_20261009-161851.log` (322 253 octets, 2 376 lignes, `Log file open, 10/09/26 16:18:51` local). Ligne de commande : `-RenderOffScreen -unattended -nosplash -NoSound -ModelContextProtocolStartServer -ModelContextProtocolPort=8000` (l.495). Première ligne horodatée l.551 = `14.18.52:619` UTC.
| Jalon | Ligne | UTC | Écart à l.551 |
|---|---|---|---|
| `LogModelContextProtocol: Starting MCP server on port 8000` | 1901 | 14.19.04:369 | +11,750 s |
| `LogHttpServerModule: All listeners started` (écoute `127.0.0.1:8000`, l.1904) | 1905 | 14.19.04:370 | +11,751 s |
| `LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init()` | 2038 | 14.19.05:566 | **+12,947 s** |
| `LogUnrealEdMisc: Loading editor; pre map load, took 14.283` | 2040 | 14.19.05:568 | 14,283 s depuis le lancement du processus (compteur moteur) |
| `LogLoad: (Engine Initialization) Total time: 59.04 seconds` (carte `CentralLondon` chargée après `MAP LOAD`, l.2041) | 2122 | 14.19.50:327 | +57,708 s (59,04 s selon le compteur moteur) |
| première session client MCP (`Initializing new session`) | 2138 | 14.19.51:342 | +58,723 s |
Dernière ligne : l.2376, `14.23.31:133` (outil `hyper_log_tail`).
MCP : `Tool search enabled: registered 3 meta-tools (54 toolsets discoverable via list_toolsets)` à l.2021 (avant `Engine is initialized`).
### 2.7 Mémoire écrite aux journaux
- Jeu Development : un seul bloc `LogMemory` (l.661-667), `16.43.03:443` UTC : `Process Physical Memory: 387.47 MB used, 387.47 MB peak` ; `Process Virtual Memory: 270.98 MB used, 270.98 MB peak` ; `Physical Memory: 42580.81 MB used, 22284.91 MB free, 64865.72 MB total` ; `Memory total: Physical=63.3GB Virtual=77.8GB`. Écrit **avant** le chargement du monde. Essai précédent : `Process Physical Memory: 388.48 MB used, 388.48 MB peak` (backup l.664). `LogLifePlay ... 7 LogMemory Log` (l.52483) est un compteur de lignes de journal, pas une mesure.
- Éditeur headless : un seul bloc (l.875-881), `14.18.52:641` UTC : `Process Physical Memory: 625.71 MB used, 625.71 MB peak` ; `Process Virtual Memory: 622.68 MB used` ; `Physical Memory: 43261.34 MB used, 21604.38 MB free`.
- Cuisson : `Peak Used virtual 10171 MiB Peak Used physical 9882 MiB` (`U8-T3_...log:339`).
- `memreport` : aucun fichier dans `Saved` du build `_essai` (liste complète : `Config`, `Logs` ×2, `LPDataCache`, `SaveGames`).
- Machine (journaux de build) : `CPU 8 physical cores, 16 logical cores`, `Memory 63.35 GB physical` (`U8_Build_20261009-175553.log:16-17`) ; CPU `AMD Ryzen 7 5800H` (`U8-T3_...log:23`).
## 3. Écarts au compte attendu de la fiche
- La fiche prévoyait « dossiers de plugins » : il n'y en a pas dans les builds (voir § 2.2) ; seul `Saved\Cooked\...\LifePlay\Plugins` existe (2 fichiers, 40 189 o).
- La fiche prévoyait un éventuel `Saved/Cooked` ou manifeste : **les deux existent** (`Saved\Cooked\Windows` 20 370 fichiers ; manifestes `Manifest_*Files_Win64.txt`, non lus pour leurs tailles).
- Le compte de `Saved\Cooked\Windows` relevé ici (20 370) diffère de la fiche U8-T3 (20 369, `U8-T3-BUILD.md:4`) : écart de 1 fichier, `Crypto.json` créé ensuite par T4 (`U8-T4-BUILD.md:44-45`, `U8-T5b-BUILD.md:62`). Cohérent.
- Aucun journal de jeu Shipping ; aucun journal de jeu pour `Development_U8` lui-même (le seul journal est celui de la copie `_essai`).
- Jalon demandé « premier `index SPAWN` ou carte chargée » : la carte chargée est atteinte à +2,956 s (`LoadMap`) ; `index SPAWN` est un jalon du scénario d'essai, pas du démarrage.
- Pas d'horodatage par ligne dans les journaux UAT (`-NoLogTimes`) : les heures de début et de fin viennent des dates de fichiers et des fiches ; seules les durées auto-déclarées sont exactes.
- Recoupement (autre formulation que les fiches) : tailles et comptes du Shipping et du Development égaux à `U8-T4-BUILD.md:41` (2 220 / 2 024 056 223) et `U8-T5b-BUILD.md:53` (2 242 / 2 611 936 183) ; somme Shipping 1 915,0 + 12,9 + 2,4 = 1 930,3 Mo = total ; Development 2 430,8 + 57,7 + 2,4 (`LifePlay.exe` 0,3 + manifestes 2,1) = 2 490,9 Mo = total.
## 4. Établi / estimé / incertain
**Établi** (lu à la source, § 2) : tailles et comptes de fichiers des quatre dossiers de build, du dossier cuit et du dossier de mise en scène ; durées de compilation, de cuisson (148,41 s commandlet, 166,38 s UAT), d'empaquetage (55,04 s Shipping, 55,34 s Development) ; délai jusqu'à `Engine is initialized` du jeu (+3,446 s ; essai précédent +5,564 s) et de l'éditeur headless (+12,947 s, 59,04 s jusqu'à la carte chargée) ; absence de dossier de plugins et de DLL de plugin dans les builds ; 100 % de succès du cache DDC en cuisson (`:501-508`) ; fuseau des journaux (UTC pour les lignes UE, UTC+2 pour les dates de fichiers).
**Estimé** :
- Le surcoût du Development sur le Shipping est de 587 879 960 octets (560,7 Mo, +29,0 %) : symboles `LifePlay.pdb` 357,7 Mo + exe 158,2 Mo (330 686 464 − 164 823 552) + `Engine\` 44,8 Mo (57,7 − 12,9, couches Vulkan et PIX) = 560,7 Mo. Les conteneurs sont identiques en taille (même hash du `ucas` selon `U8-T5b-BUILD.md:57`, non rejoué ici).
- Le premier démarrage de `_essai` (+5,564 s) plus lent que le second (+3,446 s) : cache disque chaud ; non vérifié.
- La cuisson courte (2 min 47 s) s'explique par le DDC chaud (100 % de succès) ; l'estimation de 10 à 60 min de la fiche U8 correspond à une cuisson à froid, non mesurée (`U8-T3-BUILD.md:51`).
- Les 465,8 Mo de `Content\Modules` (dont 450,8 Mo de `.git` local) sont copiés tels quels dans chaque paquet : 23,0 % du Shipping. Le dépôt `Modules` est local et ne se pousse jamais (`lp-paths`) ; que son `.git` figure dans le paquet est à examiner par le lot, pas par cette fiche.
**Incertain / non mesurable sans relancer** :
- Démarrage du jeu **Shipping** (aucun journal, 0 résultat) : il faudrait lancer `Shipping_U8_essai` avec `-log` ou mesurer par minuterie externe. (Que le Shipping n'écrive pas de journal par défaut est une attente de ma part, non vérifiée.)
- Démarrage de l'éditeur **avec interface** (le seul journal est headless, `-RenderOffScreen`) ; démarrage à froid (cache DDC, shaders) ; durée de cuisson **à froid** (DDC vidé).
- Mémoire du jeu en cours de partie (un seul relevé, au démarrage), pic mémoire de l'éditeur, `memreport`/`stat memory` : à relever en jeu.
- Part de chaque plugin dans les conteneurs (`.ucas`) : demande `UnrealPak -List`/IoStore en lecture ou un manifeste avec tailles ; non fait (hors périmètre « sans rien relancer »).
- Écart conservé des fiches, non expliqué : pak 20 218 516 (Shipping) contre 20 227 353 (Development), 8 837 octets (`U8-T5b-BUILD.md:58`).
- Build exact de l'essai `LifePlay-backup-2026.10.09-16.30.43.log`.
- Durée de compilation complète à froid (les deux compilations n'ont recompilé qu'une unité, `Module.LifePlay.cpp`, `U8_Build_...log:19`).
## Constats
- Poids dominants pour l'A/B : (1) `LifePlay-Windows.ucas` 1 259 275 600 o (62,2 % du Shipping) ; (2) `Content\Modules` 465 751 275 o (23,0 %) ; (3) exe Shipping 164 823 552 o (8,1 %) ; (4) `loading.mp4` 78,9 Mo (4,1 %).
- Contenu cuit : `Content\Heavy` pèse 2 474,3 Mo sur 2 489,9 Mo (99,4 %) ; un seul `.uexp` (`CentralLondon`) = 137,3 Mo.
- Coût de cuisson dominant : chargement des paquets 87,9 s sur 138,5 s de tick (63,5 %), enregistrement 29,6 s ; pic mémoire 9 882 Mo physique.
- Mesures A/B disponibles sans relancer : taille (tout), durées de compilation, cuisson, empaquetage (tout), démarrage Development (deux points : deux journaux de la copie `_essai`) et éditeur headless (un point), mémoire (un point par binaire, au démarrage).
- Les scripts de mesure restent dans le scratchpad de la session (non conservés) ; si une base A/B répétée est voulue, un script à ranger dans `Saved/OBA/` ou `Tools/` est à proposer.