-
Notifications
You must be signed in to change notification settings - Fork 30.1k
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
http2: improve http2 code a bit #23984
Conversation
Multiple general improvements to http2 internals for readability and efficiency
9c996f2
to
d408b51
Compare
ping @nodejs/http2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Are there any performance benefits?
Landed in 7825045 |
Multiple general improvements to http2 internals for readability and efficiency PR-URL: nodejs#23984 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Multiple general improvements to http2 internals for readability and efficiency PR-URL: #23984 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
From https://github.com/nodejs/node/blob/7825045ee695e9e5c048133255a3b614e04c98d3/lib/internal/http2/util.js it would replace const keys = Object.keys(map);
let i;
let key;
let value;
for (i = 0; i < keys.length; i++) {
key = keys[i];
value = map[key];
} with something like Object.entries(map).forEach(([key, value]) => {
}); |
node/lib/internal/http2/util.js Line 486 in 7825045
Is it a good idea to push into an array, and join all the strings at the end, instead of doing string concatenation each time in the loop ? |
Using entries and forEach is quite a bit more expensive performance wise, as is join, because it forces additional unnecessary iterations over the values. |
What is the meaning of irritations in this context ? |
Sorry, that was a phone autocorrect error... Lol I meant additional unnecessary iterations 😂 |
The most natural way to write a program should result in top-of-the-line runtime performance. In places where performance is king, the optimal code should be clearly expressible. Should we open issue in the engine ? |
The v8 team is continually making improvements to the performance in this area, and I suspect they will continue to do so. We'll get there eventually. |
@jasnell do you want to potentially backport this? |
Yeah, we should
…On Wed, Nov 28, 2018, 18:59 Shelley Vohr ***@***.*** wrote:
@jasnell <https://github.com/jasnell> do you want to potentially backport
this?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#23984 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAa2ebmROWc4uqrmlFd-msYrR2w0rHT5ks5uz02sgaJpZM4YDDzo>
.
|
@jasnell do you have the bandwidth for this atm? |
Not so much. Will take a few weeks for me to get to it |
Multiple general improvements to http2 internals for readability and efficiency [This backport applied to v10.x cleanly.] Backport-PR-URL: #29123 PR-URL: #23984 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Multiple general improvements to http2 internals for readability and efficiency [This backport applied to v10.x cleanly but had several merge conflicts on v8.x.] PR-URL: #23984 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Multiple general improvements to http2 internals for readability and efficiency
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes