Closed
Description
Hi folks,
I've been investigating some areas of regression on Node.js 22 and apparently, the Node.js startup has degraded. I've run a pretty simple benchmark
➜ nodejs-internal-benchmark git:(main) ✗ hyperfine --warmup 20 -- './node18 semicolon.js'
Benchmark 1: ./node18 semicolon.js
Time (mean ± σ): 19.5 ms ± 0.3 ms [User: 16.1 ms, System: 2.2 ms]
Range (min … max): 18.6 ms … 21.0 ms 142 runs
➜ nodejs-internal-benchmark git:(main) ✗ hyperfine --warmup 20 -- './node20 semicolon.js'
Benchmark 1: ./node20 semicolon.js
Time (mean ± σ): 19.6 ms ± 0.3 ms [User: 16.3 ms, System: 2.0 ms]
Range (min … max): 18.9 ms … 20.6 ms 142 runs
➜ nodejs-internal-benchmark git:(main) ✗ hyperfine --warmup 20 -- './node22 semicolon.js'
Benchmark 1: ./node22 semicolon.js
Time (mean ± σ): 27.5 ms ± 0.4 ms [User: 23.9 ms, System: 2.1 ms]
Range (min … max): 26.7 ms … 28.5 ms 102 runs
➜ nodejs-internal-benchmark git:(main) ✗ hyperfine --warmup 20 -- './node23 semicolon.js'
Benchmark 1: ./node23 semicolon.js
Time (mean ± σ): 30.5 ms ± 0.4 ms [User: 26.8 ms, System: 2.4 ms]
Range (min … max): 29.8 ms … 31.6 ms 92 runs
Where the semicolon is just a js file with ;
Although this regression isn't confirmed by our benchmarks:
misc/startup-core.js n=30 mode='process' script='test/fixtures/semicolon' *** 5.82 % ±1.01% ±1.34% ±1.74%
Please note, the hyperfine benchmarks were run on a local macOS machine -- I couldn't run it in a dedicated one as I'm travelling and I don't have access via SSH to my machines and the nodejs benchmark (misc/startup-core.js) was run in a dedicated aws machine
Does someone has an idea? cc @joyeecheung
Metadata
Metadata
Assignees
Labels
No labels