Méthode et décor
La machine, le protocole, les commandes qui rejouent chaque chiffre — et ce qu'un décor sale déplace.
Décor et provenance
| Élément | Valeur |
|---|---|
| Node.js | v26.10.0 |
| Cœurs logiques | 12 |
| Processeur | Intel Core i9-8950HK @ 2.90 GHz |
| Concurrence (wrk) | c64 · 4 fils · 10s par tir |
| Route du comparatif | http://127.0.0.1:5151/nodefony/test/als-test/state |
| Route du soak | http://127.0.0.1:5151/nodefony/test/als-test/state |
| Tirs par mesure | 3, médiane retenue, refus au-delà de 3 % de dispersion |
| Fenêtres du soak | 90 × 60s, 2 écartée(s) |
# toute la campagne publiée (parité, paires, ORM, CPU du fil, soak)
caffeinate -dims bash .claude/skills/nodefony-load-test/scripts/perf-campaign.sh --at 01:30
# une pièce seule, ex. le face-à-face NestJS
bash .claude/skills/nodefony-load-test/scripts/perf-campaign.sh --only "parite nest-fair"
# une paire à la main (alternance A₁ B₁ A₂ B₂ + verdict de séparation)
BENCH_CONN=64 BENCH_WARMUP=20 bash .claude/skills/nodefony-load-test/bench-frameworks/bench-pairs.sh nest-fair nodefony
# le fichier publié, composé depuis le dossier de campagne
node .claude/skills/nodefony-load-test/scripts/perf-compose.mjs --campaign tmp/perf-campaign-<date> --data docs/performance/data/<version>.json
# tenue dans la durée
node .claude/skills/nodefony-load-test/scripts/soak.mjs --minutes 90 --window 60
# capacité — serveur de PRODUCTION (NF_BENCH_ROUTE=1, modules de banc autorisés)
node .claude/skills/nodefony-load-test/scripts/capacity.mjs --http-path /nodefony/kernel/bench --seconds 8 --json tmp/capacity.json
# cette page
node .claude/skills/nodefony-load-test/scripts/prod-readiness-report.mjs