Uh oh!
There was an error while loading. Please reload this page.
stream: use bitmap in writable state - #49834
Conversation
nodejs-github-bot
commented
Sep 23, 2023
Review requested:
|
rluvaton
commented
Sep 23, 2023
This comment was marked as outdated.
This comment was marked as outdated.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
nodejs-github-bot
commented
Sep 23, 2023
b7144c1 to
c0cd612Comparenodejs-github-bot
commented
Sep 24, 2023
3d3176d to
f86c8abComparenodejs-github-bot
commented
Sep 24, 2023
nodejs-github-bot
commented
Sep 24, 2023
nodejs-github-bot
commented
Sep 24, 2023
nodejs-github-bot
commented
Sep 24, 2023
nodejs-github-bot
commented
Sep 24, 2023
nodejs-github-bot
commented
Sep 24, 2023
nodejs-github-bot
commented
Sep 26, 2023
Commit Queue failed- Loading data for nodejs/node/pull/49834 ✔ Done loading data for nodejs/node/pull/49834 ----------------------------------- PR info ------------------------------------ Title stream: use bitmap in writable state (#49834) ⚠ Could not retrieve the email or name of the PR author's from user's GitHub profile! Branch rluvaton:convert-state-to-bitmap-in-writeble -> nodejs:main Labels stream, performance, needs-ci, needs-benchmark-ci Commits 4 - stream: use bitmap in writable state - stream: add brackets - stream: add brackets and fix again - stream: fix tests Committers 1 - Raz Luvaton <16746759+rluvaton@users.noreply.github.com> PR-URL: https://github.com/nodejs/node/pull/49834 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Robert Nagy Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli ------------------------------ Generated metadata ------------------------------ PR-URL: https://github.com/nodejs/node/pull/49834 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Robert Nagy Reviewed-By: Luigi Pinca Reviewed-By: Yagiz Nizipli -------------------------------------------------------------------------------- ℹ This PR was created on Sat, 23 Sep 2023 21:05:48 GMT ✔ Approvals: 4 ✔ - Benjamin Gruenbaum (@benjamingr) (TSC): https://github.com/nodejs/node/pull/49834#pullrequestreview-1640948581 ✔ - Robert Nagy (@ronag) (TSC): https://github.com/nodejs/node/pull/49834#pullrequestreview-1641038683 ✔ - Luigi Pinca (@lpinca): https://github.com/nodejs/node/pull/49834#pullrequestreview-1641116583 ✔ - Yagiz Nizipli (@anonrig) (TSC): https://github.com/nodejs/node/pull/49834#pullrequestreview-1644628581 ✔ Last GitHub CI successful ℹ Last Benchmark CI on 2023-09-23T21:24:08Z: https://ci.nodejs.org/job/benchmark-node-micro-benchmarks/1412/ ℹ Last Full PR CI on 2023-09-26T13:54:51Z: https://ci.nodejs.org/job/node-test-pull-request/54249/ - Querying data for job/node-test-pull-request/54249/ ✔ Last Jenkins CI successful -------------------------------------------------------------------------------- ✔ No git cherry-pick in progress ✔ No git am in progress ✔ No git rebase in progress -------------------------------------------------------------------------------- - Bringing origin/main up to date... From https://github.com/nodejs/node * branch main -> FETCH_HEAD ✔ origin/main is now up-to-date - Downloading patch for 49834 From https://github.com/nodejs/node * branch refs/pull/49834/merge -> FETCH_HEAD ✔ Fetched commits as c829c03df245..b6ac911d1d57 -------------------------------------------------------------------------------- [main e921e7e99c] stream: use bitmap in writable state Author: Raz Luvaton <16746759+rluvaton@users.noreply.github.com> Date: Sun Sep 24 00:05:03 2023 +0300 1 file changed, 195 insertions(+), 142 deletions(-) [main 74b3c3ffff] stream: add brackets Author: Raz Luvaton <16746759+rluvaton@users.noreply.github.com> Date: Sun Sep 24 12:18:50 2023 +0300 1 file changed, 2 insertions(+), 2 deletions(-) [main d62d5584bf] stream: add brackets and fix again Author: Raz Luvaton <16746759+rluvaton@users.noreply.github.com> Date: Sun Sep 24 12:45:07 2023 +0300 1 file changed, 2 insertions(+), 2 deletions(-) [main 6680801bbe] stream: fix tests Author: Raz Luvaton <16746759+rluvaton@users.noreply.github.com> Date: Sun Sep 24 13:11:18 2023 +0300 1 file changed, 1 insertion(+), 1 deletion(-) ✔ Patches applied There are 4 commits in the PR. Attempting autorebase. Rebasing (2/8)https://github.com/nodejs/node/actions/runs/6317227581 |
nodejs-github-bot
commented
Sep 26, 2023
Landed in 6754652 |
The
notable-change Please suggest a text for the release notes if you'd like to include a more detailed summary, then proceed to update the PR description with the text or a link to the notable change suggested text comment. |
benjamingr
commented
Sep 26, 2023
This PR and the readable stream PR improve stream creation and destruction by ±15% and reduce the memory overhead each stream takes in Node.js |
PR-URL: #49834 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Notable changes: doc: * deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #49683 * promote fetch/webstreams from experimental to stable (Steven) #45684 * deprecate `util.toUSVString` (Yagiz Nizipli) #49725 * deprecate calling `promisify` on a function that returns a promise (Antoine du Hamel) #49647 esm: * set all hooks as release candidate (Geoffrey Booth) #49597 stream: * use bitmap in writable state (Raz Luvaton) #49834 * use bitmap in readable state (Benjamin Gruenbaum) #49745 * improve webstream readable async iterator performance (Raz Luvaton) #49662 PR-URL: TODO
Notable changes: doc: * deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #49683 * promote fetch/webstreams from experimental to stable (Steven) #45684 * deprecate `util.toUSVString` (Yagiz Nizipli) #49725 * deprecate calling `promisify` on a function that returns a promise (Antoine du Hamel) #49647 esm: * set all hooks as release candidate (Geoffrey Booth) #49597 stream: * use bitmap in writable state (Raz Luvaton) #49834 * use bitmap in readable state (Benjamin Gruenbaum) #49745 * improve webstream readable async iterator performance (Raz Luvaton) #49662 PR-URL: #49917
PR-URL: #49834 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Notable changes: deps: * add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung) #49874 doc: * deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #49683 * deprecate `util.toUSVString` (Yagiz Nizipli) #49725 * deprecate calling `promisify` on a function that returns a promise (Antoine du Hamel) #49647 esm: * set all hooks as release candidate (Geoffrey Booth) #49597 module: * fix the leak in SourceTextModule and ContextifySript (Joyee Cheung) #48510 * fix leak of vm.SyntheticModule (Joyee Cheung) #48510 * use symbol in WeakMap to manage host defined options (Joyee Cheung) #48510 src: * (SEMVER-MINOR) allow embedders to override NODE_MODULE_VERSION (Cheng Zhao) #49279 stream: * use bitmap in writable state (Raz Luvaton) #49834 * use bitmap in readable state (Benjamin Gruenbaum) #49745 * improve webstream readable async iterator performance (Raz Luvaton) #49662 test_runner: * (SEMVER-MINOR) accept `testOnly` in `run` (Moshe Atlow) #49753 * (SEMVER-MINOR) add junit reporter (Moshe Atlow) #49614 PR-URL: #49932
Notable changes: deps: * add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung) #49874 doc: * deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) #49683 * deprecate `util.toUSVString` (Yagiz Nizipli) #49725 * deprecate calling `promisify` on a function that returns a promise (Antoine du Hamel) #49647 esm: * set all hooks as release candidate (Geoffrey Booth) #49597 module: * fix the leak in SourceTextModule and ContextifySript (Joyee Cheung) #48510 * fix leak of vm.SyntheticModule (Joyee Cheung) #48510 * use symbol in WeakMap to manage host defined options (Joyee Cheung) #48510 src: * (SEMVER-MINOR) allow embedders to override NODE_MODULE_VERSION (Cheng Zhao) #49279 stream: * use bitmap in writable state (Raz Luvaton) #49834 * use bitmap in readable state (Benjamin Gruenbaum) #49745 * improve webstream readable async iterator performance (Raz Luvaton) #49662 test_runner: * (SEMVER-MINOR) accept `testOnly` in `run` (Moshe Atlow) #49753 * (SEMVER-MINOR) add junit reporter (Moshe Atlow) #49614 PR-URL: #49932
PR-URL: nodejs#49834 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Notable changes: deps: * add v8::Object::SetInternalFieldForNodeCore() (Joyee Cheung) nodejs#49874 doc: * deprecate `fs.F_OK`, `fs.R_OK`, `fs.W_OK`, `fs.X_OK` (Livia Medeiros) nodejs#49683 * deprecate `util.toUSVString` (Yagiz Nizipli) nodejs#49725 * deprecate calling `promisify` on a function that returns a promise (Antoine du Hamel) nodejs#49647 esm: * set all hooks as release candidate (Geoffrey Booth) nodejs#49597 module: * fix the leak in SourceTextModule and ContextifySript (Joyee Cheung) nodejs#48510 * fix leak of vm.SyntheticModule (Joyee Cheung) nodejs#48510 * use symbol in WeakMap to manage host defined options (Joyee Cheung) nodejs#48510 src: * (SEMVER-MINOR) allow embedders to override NODE_MODULE_VERSION (Cheng Zhao) nodejs#49279 stream: * use bitmap in writable state (Raz Luvaton) nodejs#49834 * use bitmap in readable state (Benjamin Gruenbaum) nodejs#49745 * improve webstream readable async iterator performance (Raz Luvaton) nodejs#49662 test_runner: * (SEMVER-MINOR) accept `testOnly` in `run` (Moshe Atlow) nodejs#49753 * (SEMVER-MINOR) add junit reporter (Moshe Atlow) nodejs#49614 PR-URL: nodejs#49932
same as the following PR but for writable:
Benchmark CI output:
For this script:
the system analyzer shows a big reduction in size:
Before:

After:
