Skip to content

Performance methodology ​

Measured A/B on 2026-09-22 (logs: /tmp/i18n-perf-ab-20260922095038/). Same machine, --runs 3, --cool strict, forced rebuilds, real nuxt-i18n-micro dist (not jiti stub), Nitro .output/server/index.mjs.

What we measure ​

LayerArtifact
App under testFixture nuxi build → Nitro node-server .output/server/index.mjs
Module under testRoot dist/module.mjs after nuxt-module-build build (fail if jiti stub)
Packages@i18n-micro/*/dist built before suite
LoadArtillery knobs via @untestutils/perf ≥0.6.10

Not measured: Vite SPA dist/, nuxi preview, run: 'dev'.

Load profiles ​

idWindowWall (≈)plain RPSv10 RPSmicro RPSRPS order
short2s@10 + 10s@40 / maxVU 40~6 min4266109micro > v10 > plain
mid6s@6 + 30s@60 uncapped~11 min55112199micro > v10 > plain
full6s@6 + 60s@60 uncapped~14 min102126230micro > v10 > plain

Absolute RPS scales with window/VU (expected). Relative ranking and the sign of micro−v10 never flipped.

Decision ​

  • CLI default = --load short + --cool fast — cheapest profile that preserves ranking.
  • Published docs (performance-results.md / charts / marketing tables) = --load full --only all (writes docs only when load === 'full').
  • Blind restore of historical 6+60 as the only path was wrong: it burns ~2× wall time without changing conclusions.

Cool-downs ​

presetpostBuildbetween runsbetween targetsshort RPS order (mean of 3)
fast (default)200 ms500 ms500 msmicro 250 > v10 142 > plain 69
strict2000 ms3000 ms5000 msmicro 109 > v10 66 > plain 42

Ranking unchanged with fast. Absolute RPS differs between sessions (machine load); relative order holds. Use --cool strict only when reproducing pre-migration pauses.

Published snapshot in performance-results.md from this A/B used --load full --cool strict; regenerate with --cool fast when refreshing marketing numbers if you want defaults mirrored exactly.

Commands ​

bash
# day-to-day / CI
pnpm test:performance
# same as: --load short --cool fast --runs 3

# regenerate published numbers
pnpm -C scripts cli performance --load full --cool fast --runs 3 --only all

Released under the MIT License.