Nodefony
Framework Node.js fullstack — HTTP & WebSocket, même contexte

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émentValeur
Node.jsv26.10.0
Cœurs logiques12
ProcesseurIntel Core i9-8950HK @ 2.90 GHz
Concurrence (wrk)c64 · 4 fils · 10s par tir
Route du comparatifhttp://127.0.0.1:5151/nodefony/test/als-test/state
Route du soakhttp://127.0.0.1:5151/nodefony/test/als-test/state
Tirs par mesure3, médiane retenue, refus au-delà de 3 % de dispersion
Fenêtres du soak90 × 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