refactor: various - #1587
refactor: various#1587
Conversation
commit: |
CLI benchmark
Full report
|
| Setting | Value |
|---|---|
| Baseline | ref:4cba365a99e1d3a4dfb7c24a31f84b7aee128d7c (v4.0.0-alpha.1) |
| Head | local packages/nuxt-cli at 79d7d73 (v4.0.0-alpha.1) |
| Node | v24.21.0 |
| OS | Linux 6.17.0 (kernel 6.17.0-1022-azure) |
| CPU | AMD EPYC 7763 64-Core Processor x 4 |
| Memory | 15.6 GB |
| Load average at start | 1.63, 0.60, 0.22 |
| Run started | 2026-10-03T13:09:52.808Z |
Cold CLI startup
Median of 15 interleaved runs per command, one warmup discarded.
| Command | baseline v4.0.0-alpha.1 median | head v4.0.0-alpha.1 median | Delta | baseline v4.0.0-alpha.1 min / p95 | head v4.0.0-alpha.1 min / p95 |
|---|---|---|---|---|---|
nuxt --version |
88 ms | 88 ms | +0.0% | 84 ms / 95 ms | 86 ms / 94 ms |
nuxt --version (first output byte) |
83 ms | 83 ms | -0.2% | 79 ms / 88 ms | 80 ms / 88 ms |
nuxt --help |
146 ms | 146 ms | +0.1% | 143 ms / 149 ms | 140 ms / 160 ms |
nuxt --help (first output byte) |
140 ms | 141 ms | +0.2% | 138 ms / 143 ms | 135 ms / 155 ms |
nuxt dev --help |
104 ms | 103 ms | -0.9% | 100 ms / 106 ms | 101 ms / 105 ms |
nuxt dev --help (first output byte) |
99 ms | 98 ms | -0.9% | 96 ms / 101 ms | 96 ms / 100 ms |
nuxt <unknown-command> (no-op) |
155 ms | 155 ms | +0.2% | 152 ms / 159 ms | 151 ms / 161 ms |
nuxt <unknown-command> (no-op) (first output byte) |
149 ms | 149 ms | +0.1% | 146 ms / 152 ms | 145 ms / 155 ms |
Module load cost
Counted with a module.registerHooks load hook, compile cache disabled. Counts every JS module actually evaluated on that code path (built-ins excluded, native addons excluded).
| Command | baseline v4.0.0-alpha.1 modules | head v4.0.0-alpha.1 modules | Delta | baseline v4.0.0-alpha.1 source bytes | head v4.0.0-alpha.1 source bytes | Delta |
|---|---|---|---|---|---|---|
nuxt --version |
37 | 36 | -2.7% | 297.7 kB | 297.8 kB | +0.0% |
nuxt --help |
145 | 144 | -0.7% | 958.0 kB | 956.6 kB | -0.1% |
nuxt dev --help |
63 | 63 | 0.0% | 455.2 kB | 452.9 kB | -0.5% |
Install footprint and published tarball
Each version installed on its own into an empty project with nothing but @nuxt/cli as a dependency, so the tree is exactly the CLI and its transitive dependencies. npm cache is warm and the registry is only consulted for metadata, so install wall time is indicative, not a network benchmark.
| Metric | baseline v4.0.0-alpha.1 | head v4.0.0-alpha.1 | Delta |
|---|---|---|---|
Direct dependencies of @nuxt/cli |
23 | 23 | 0.0% |
| Packages in the installed tree (unique name@version) | 39 | 39 | 0.0% |
| Unique package names | 39 | 39 | 0.0% |
| Package directories on disk (cross-check) | 32 | 32 | 0.0% |
Installed node_modules on disk |
2.43 MB | 2.42 MB | -0.3% |
| Installed files | 434 | 432 | -0.5% |
| Install wall time (warm npm cache, median of 3) | 1.29 s | 1.28 s | -0.5% |
| Published tarball (packed) | 241.1 kB | 239.0 kB | -0.9% |
| Published tarball (unpacked) | 781.8 kB | 773.3 kB | -1.1% |
| Files in tarball | 99 | 97 | -2.0% |
Interleaved runs on a shared runner: trust the deltas, not the absolute timings. The dev, restart and build suites run locally via pnpm bench:cli.
🔗 Linked issue
📚 Description
various fixes - pushing to check CI