-
Notifications
You must be signed in to change notification settings - Fork 30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ignition + TurboFan: Node.js benchmarks #11851
Comments
arrays:
|
assert:
|
Yikes... those performance hits... especially for Uint8Array. |
There is still improvements being made in the area of TypedArrays: https://bugs.chromium.org/p/v8/issues/detail?id=5977 |
Hmm yeah I think we should definitely keep an eye on that before merging. We use |
@bmeurer @psmarshall could we keep an eye on this? |
Yes, this is mostly known. We know that there's some work to be done, not only for TypedArrays. |
I had to abort buffers:
A gist with the same data. |
@vsemozhetbyt You can reduce the iteration count |
@mscdex If I get it right, the problem is that a nominal 'one run', as the progress bar and the For example, I've reduced |
buffer-swap.js with --set n=1e6:
|
child_process:
|
@vsemozhetbyt Yep, benchmarking isn't always easy :-) Explicitly passing a lower |
streams:
|
Example output with node-tf:
node-cs:
|
crypto:
|
timers:
|
hmm.. the streams results are interesting because I've been noticing a significant dip in streams performance in master compared to v7 and v6 in general without switching over to (that dip is really the only thing keeping me from landing the crypto module refactor I had done) |
@bmeurer One of the tests deoptimizes with TurboFan for a not obvious reason. According to the log, the problem is located at the output:
|
TOC added to the first post to find results more quickly (will be updated). |
@targos That looks weird, given that the relevant line https://github.com/nodejs/node/blob/master/benchmark/arrays/var-int.js#L29 doesn't have any named access. But I also doubt that this deopt is important, it's just a SOFT deopt, so next time main is executed it will be optimized with feedback. |
dgram:
|
|
Wow. es:
|
The improvements on the ES6 features is not unexpected. I suspect that the performance losses we see in other areas could be made up for by taking advantage of the highly optimized new features. In particular, using defaults and rest params will provide a significant boost throughout core based on these results. |
@jasnell Yes. Plus I noticed that some parts of Node core are sort-of written in CrankshaftScript, i.e. carefully tuned towards stuff that works extremely well in Crankshaft. Once I+TF is in for sure, we should revisit Node core and do some auditing/refactoring. |
|
This commit in the
v8/node/vee-eight-lkgr
has turned the new Ignition+TurboFan pipeline on by default. To see the performance impact, I've builtvee-eight-lkgr
before and after this commit and have started common Node.js benchmark suites with them.Both builds have these same versions:
As my machine is not a fast one, I will post the results piecemeal.
UPD. All suites are complete.
TOC:
buffer-swap.js
with--set n=1e6
)foreach-bench.js
)tcp-raw-pipe.js
)The text was updated successfully, but these errors were encountered: