Repository navigation
Performance regression between 8.9 and 8.10 #19444
Copy link
Copy link
Closed
Labels
performanceIssues and PRs related to the performance of Node.js.Issues and PRs related to the performance of Node.js.v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.
Description
- Version v8.10.0:
- Platform MacOS:
- Subsystem:
Hello everybody!
I think I've found a performances regression in v8.10.0.
I'm the author of find-my-way, an http router. During a performances test I've noticed that I've got a regression between v8.9.0 and v8.10.0.
To verify the issue by yourself clone the project and do the following:
nvm use v8.10.0
git checkout v1.10.4
node bench.js
then
nvm use v8.9.0
node bench.js
As you can see under v8.9.0 the performances are way better.
My results
~/Development/find-my-way cc6ac4e ✔
▶ node -v
v8.10.0
~/Development/find-my-way cc6ac4e ✔
▶ node bench.js
lookup static route x 26,119,612 ops/sec ±1.03% (86 runs sampled)
lookup dynamic route x 1,302,000 ops/sec ±0.87% (89 runs sampled)
lookup dynamic multi-parametric route x 715,705 ops/sec ±0.94% (90 runs sampled)
lookup dynamic multi-parametric route with regex x 711,020 ops/sec ±0.64% (93 runs sampled)
lookup long static route x 1,678,087 ops/sec ±1.14% (91 runs sampled)
find static route x 28,763,239 ops/sec ±0.62% (92 runs sampled)
find dynamic route x 1,552,819 ops/sec ±0.72% (93 runs sampled)
find dynamic multi-parametric route x 836,996 ops/sec ±0.84% (89 runs sampled)
find dynamic multi-parametric route with regex x 806,364 ops/sec ±0.68% (91 runs sampled)
find long static route x 2,684,363 ops/sec ±0.72% (93 runs sampled)
~/Development/find-my-way cc6ac4e ✔
▶ node -v
v8.9.0
~/Development/find-my-way cc6ac4e ✔
▶ node bench.js
lookup static route x 31,258,395 ops/sec ±0.95% (93 runs sampled)
lookup dynamic route x 1,493,612 ops/sec ±0.93% (92 runs sampled)
lookup dynamic multi-parametric route x 821,517 ops/sec ±0.94% (90 runs sampled)
lookup dynamic multi-parametric route with regex x 752,734 ops/sec ±0.44% (93 runs sampled)
lookup long static route x 2,332,910 ops/sec ±0.93% (88 runs sampled)
find static route x 30,914,105 ops/sec ±0.79% (92 runs sampled)
find dynamic route x 1,648,165 ops/sec ±0.94% (91 runs sampled)
find dynamic multi-parametric route x 876,395 ops/sec ±0.84% (91 runs sampled)
find dynamic multi-parametric route with regex x 803,478 ops/sec ±0.64% (93 runs sampled)
find long static route x 2,769,465 ops/sec ±0.68% (94 runs sampled)
Please let me know if I can do something more, thanks!
cc @mcollina
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
performanceIssues and PRs related to the performance of Node.js.Issues and PRs related to the performance of Node.js.v8 engineIssues and PRs related to the V8 dependency.Issues and PRs related to the V8 dependency.
Activity
mcollina commentedon Mar 19, 2018
cc @nodejs/v8
bmeurer commentedon Mar 19, 2018
Interesting, I can reproduce it. May be related to webpack/webpack#6767. At least it's fixed on V8 ToT (Node 10):
hashseed commentedon Mar 19, 2018
Would anyone be willing to bisect the V8 change between Node 8.9 and 8.10 that caused this regression? I posted instructions to do that here.
apapirovski commentedon Nov 29, 2018
Given the lack of a movement here for over 6 months, I'm going to close this out — especially since this is an issue with V8. Do feel free to reopen if you feel strongly about this but at this point it might need some actionable input to push this forward.