Skip to content

Conversation

@aduh95
Copy link
Contributor

@aduh95 aduh95 commented Nov 23, 2025

Follow up of #60796

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/http
  • @nodejs/loaders
  • @nodejs/net
  • @nodejs/streams
  • @nodejs/test_runner

@nodejs-github-bot nodejs-github-bot added lib / src Issues and PRs related to general changes in the lib or src directory. needs-ci PRs that need a full CI run. labels Nov 23, 2025
@codecov
Copy link

codecov bot commented Nov 23, 2025

Codecov Report

❌ Patch coverage is 85.71429% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.54%. Comparing base (1758b74) to head (c035d5b).
⚠️ Report is 27 commits behind head on main.

Files with missing lines Patch % Lines
lib/_http_server.js 0.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #60825      +/-   ##
==========================================
- Coverage   88.56%   88.54%   -0.02%     
==========================================
  Files         703      703              
  Lines      208268   208270       +2     
  Branches    40175    40173       -2     
==========================================
- Hits       184444   184417      -27     
- Misses      15828    15845      +17     
- Partials     7996     8008      +12     
Files with missing lines Coverage Δ
lib/events.js 99.83% <100.00%> (ø)
lib/internal/async_hooks.js 99.37% <100.00%> (+<0.01%) ⬆️
lib/internal/modules/esm/translators.js 92.97% <100.00%> (-0.02%) ⬇️
lib/internal/streams/end-of-stream.js 97.42% <100.00%> (+<0.01%) ⬆️
lib/internal/streams/readable.js 96.20% <100.00%> (ø)
lib/internal/test_runner/mock/mock_timers.js 98.68% <100.00%> (ø)
lib/_http_server.js 97.04% <0.00%> (-0.15%) ⬇️

... and 28 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Member

@legendecas legendecas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind running benchmarks on streams/events/async_hooks?

Copy link
Member

@gurgunday gurgunday left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. needs-benchmark-ci PR that need a benchmark CI run. request-ci Add this label to start a Jenkins CI on a PR. labels Nov 23, 2025
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Nov 23, 2025
@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Nov 23, 2025

@nodejs-github-bot
Copy link
Collaborator

@legendecas
Copy link
Member

legendecas commented Nov 23, 2025

Copying result from https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1756/consoleText

expand result
                                                                                                                                                            confidence improvement accuracy (*)    (**)
async_hooks/async-local-storage-getstore-nested-resources.js n=500000 resourceCount=10                                                                                     -0.37 %       ±1.18%  ±1.57%
async_hooks/async-local-storage-getstore-nested-resources.js n=500000 resourceCount=100                                                                                    -0.15 %       ±0.72%  ±0.96%
async_hooks/async-local-storage-getstore-nested-resources.js n=500000 resourceCount=1000                                                                                    1.08 %       ±5.00%  ±6.66%
async_hooks/async-local-storage-getstore-nested-run.js n=10000 storageCount=1                                                                                              -0.90 %       ±2.23%  ±2.99%
async_hooks/async-local-storage-getstore-nested-run.js n=10000 storageCount=10                                                                                             -1.14 %       ±4.93%  ±6.56%
async_hooks/async-local-storage-getstore-nested-run.js n=10000 storageCount=100                                                                                      *     -4.76 %       ±3.82%  ±5.10%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=0                                                                                           -1.28 %       ±2.40%  ±3.20%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=1                                                                                            1.28 %       ±1.95%  ±2.60%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=10                                                                                           0.56 %       ±1.63%  ±2.18%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=100                                                                                          1.45 %      ±14.61% ±19.44%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=0                                                                                                4.09 %       ±9.57% ±12.74%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=1                                                                                                1.72 %       ±7.73% ±10.28%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=10                                                                                              -2.08 %       ±5.06%  ±6.73%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=100                                                                                             -0.78 %       ±4.92%  ±6.56%
async_hooks/async-local-storage-run.js n=10000000                                                                                                                           0.16 %       ±0.62%  ±0.83%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-local-storage' benchmarker='wrk'              *     -0.69 %       ±0.63%  ±0.84%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-resource' benchmarker='wrk'                          0.17 %       ±0.59%  ±0.78%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='destroy' benchmarker='wrk'                                 0.04 %       ±0.58%  ±0.77%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-local-storage' benchmarker='wrk'                 0.43 %       ±0.82%  ±1.09%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-resource' benchmarker='wrk'                      0.49 %       ±0.84%  ±1.12%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='destroy' benchmarker='wrk'                             0.27 %       ±0.66%  ±0.88%
async_hooks/gc-tracking.js method='trackingDisabled' n=1000000                                                                                                             -0.73 %      ±10.32% ±13.73%
async_hooks/gc-tracking.js method='trackingEnabled' n=1000000                                                                                                              -2.41 %       ±3.73%  ±4.96%
async_hooks/gc-tracking.js method='trackingEnabledWithDestroyHook' n=1000000                                                                                         *     -0.72 %       ±0.68%  ±0.90%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='after' benchmarker='wrk'                                                                                   0.11 %       ±0.66%  ±0.88%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='all' benchmarker='wrk'                                                                                    -0.08 %       ±0.75%  ±1.01%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='before' benchmarker='wrk'                                                                                 -0.13 %       ±0.81%  ±1.07%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='disabled' benchmarker='wrk'                                                                         *     -0.96 %       ±0.76%  ±1.02%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='init' benchmarker='wrk'                                                                                    0.49 %       ±0.93%  ±1.23%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='none' benchmarker='wrk'                                                                                   -0.56 %       ±1.09%  ±1.46%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='after' benchmarker='wrk'                                                                                  0.71 %       ±0.99%  ±1.32%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='all' benchmarker='wrk'                                                                                   -0.33 %       ±0.75%  ±0.99%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='before' benchmarker='wrk'                                                                          *     -0.97 %       ±0.77%  ±1.02%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='disabled' benchmarker='wrk'                                                                              -0.19 %       ±0.84%  ±1.12%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='init' benchmarker='wrk'                                                                                   0.45 %       ±0.98%  ±1.31%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='none' benchmarker='wrk'                                                                                  -0.21 %       ±0.83%  ±1.11%
async_hooks/promises.js asyncHooks='disabled' n=1000000                                                                                                                    -0.17 %       ±0.48%  ±0.64%
async_hooks/promises.js asyncHooks='enabled' n=1000000                                                                                                                     -0.43 %       ±0.53%  ±0.71%
async_hooks/promises.js asyncHooks='enabledWithDestroy' n=1000000                                                                                                          -0.11 %       ±0.95%  ±1.27%
async_hooks/promises.js asyncHooks='enabledWithInitOnly' n=1000000                                                                                                          0.22 %       ±0.40%  ±0.54%
events/ee-add-remove.js n=1000000 removeListener=0 newListener=0                                                                                                            0.63 %       ±0.87%  ±1.16%
events/ee-add-remove.js n=1000000 removeListener=0 newListener=1                                                                                                    **     -1.53 %       ±0.89%  ±1.18%
events/ee-add-remove.js n=1000000 removeListener=1 newListener=0                                                                                                           -1.21 %       ±1.31%  ±1.75%
events/ee-add-remove.js n=1000000 removeListener=1 newListener=1                                                                                                            0.58 %       ±1.23%  ±1.64%
events/ee-emit.js listeners=1 argc=0 n=2000000                                                                                                                     ***    -15.83 %       ±3.10%  ±4.16%
events/ee-emit.js listeners=1 argc=10 n=2000000                                                                                                                    ***    -11.90 %       ±2.26%  ±3.00%
events/ee-emit.js listeners=1 argc=2 n=2000000                                                                                                                     ***    -15.50 %       ±2.41%  ±3.21%
events/ee-emit.js listeners=1 argc=4 n=2000000                                                                                                                     ***    -15.58 %       ±3.83%  ±5.10%
events/ee-emit.js listeners=10 argc=0 n=2000000                                                                                                                    ***      8.23 %       ±1.27%  ±1.70%
events/ee-emit.js listeners=10 argc=10 n=2000000                                                                                                                   ***      1.84 %       ±0.80%  ±1.06%
events/ee-emit.js listeners=10 argc=2 n=2000000                                                                                                                    ***      3.13 %       ±1.57%  ±2.08%
events/ee-emit.js listeners=10 argc=4 n=2000000                                                                                                                             0.85 %       ±1.26%  ±1.68%
events/ee-emit.js listeners=5 argc=0 n=2000000                                                                                                                     ***      4.17 %       ±2.35%  ±3.13%
events/ee-emit.js listeners=5 argc=10 n=2000000                                                                                                                             1.75 %       ±1.83%  ±2.43%
events/ee-emit.js listeners=5 argc=2 n=2000000                                                                                                                              2.50 %       ±3.99%  ±5.33%
events/ee-emit.js listeners=5 argc=4 n=2000000                                                                                                                     ***      5.89 %       ±2.24%  ±2.99%
events/ee-listen-unique.js n=1000000 events=1                                                                                                                              -0.34 %       ±1.04%  ±1.38%
events/ee-listen-unique.js n=1000000 events=10                                                                                                                             -0.16 %       ±1.80%  ±2.40%
events/ee-listen-unique.js n=1000000 events=2                                                                                                                              -0.35 %       ±2.33%  ±3.10%
events/ee-listen-unique.js n=1000000 events=20                                                                                                                             -1.27 %       ±1.58%  ±2.10%
events/ee-listen-unique.js n=1000000 events=3                                                                                                                               0.25 %       ±2.62%  ±3.49%
events/ee-listen-unique.js n=1000000 events=5                                                                                                                               0.02 %       ±3.49%  ±4.64%
events/ee-listener-count-on-prototype.js n=50000000                                                                                                                        -1.15 %       ±2.10%  ±2.80%
events/ee-listeners.js raw='false' listeners=5 n=5000000                                                                                                                   -0.65 %       ±1.73%  ±2.30%
events/ee-listeners.js raw='false' listeners=50 n=5000000                                                                                                                  -0.32 %       ±0.37%  ±0.49%
events/ee-listeners.js raw='true' listeners=5 n=5000000                                                                                                                    -0.74 %       ±3.55%  ±4.72%
events/ee-listeners.js raw='true' listeners=50 n=5000000                                                                                                                    0.55 %       ±1.09%  ±1.45%
events/ee-once.js argc=0 n=20000000                                                                                                                                         0.20 %       ±1.21%  ±1.61%
events/ee-once.js argc=1 n=20000000                                                                                                                                         0.18 %       ±1.73%  ±2.30%
events/ee-once.js argc=4 n=20000000                                                                                                                                         0.11 %       ±0.82%  ±1.09%
events/ee-once.js argc=5 n=20000000                                                                                                                                         0.87 %       ±1.04%  ±1.38%
events/eventtarget-add-remove-abort.js nListener=1 n=100000                                                                                                                 5.16 %       ±7.11%  ±9.46%
events/eventtarget-add-remove-abort.js nListener=10 n=100000                                                                                                               -1.12 %       ±1.47%  ±1.96%
events/eventtarget-add-remove-abort.js nListener=5 n=100000                                                                                                                -2.81 %       ±2.97%  ±3.95%
events/eventtarget-add-remove.js nListener=1 n=100000                                                                                                                       2.97 %       ±6.75%  ±8.98%
events/eventtarget-add-remove.js nListener=10 n=100000                                                                                                                      0.60 %       ±1.69%  ±2.25%
events/eventtarget-add-remove.js nListener=5 n=100000                                                                                                                      -1.18 %       ±2.44%  ±3.25%
events/eventtarget-creation.js n=1000000                                                                                                                                    1.75 %       ±2.37%  ±3.16%
events/eventtarget.js listeners=1 n=1000000                                                                                                                                -0.41 %       ±1.70%  ±2.27%
events/eventtarget.js listeners=10 n=1000000                                                                                                                               -0.14 %       ±1.99%  ±2.65%
events/eventtarget.js listeners=5 n=1000000                                                                                                                                -0.68 %       ±1.47%  ±1.96%
streams/compose.js n=1000                                                                                                                                                   0.30 %       ±0.83%  ±1.11%
streams/creation.js kind='duplex' n=50000000                                                                                                                                0.18 %       ±1.55%  ±2.07%
streams/creation.js kind='readable' n=50000000                                                                                                                              0.31 %       ±1.30%  ±1.75%
streams/creation.js kind='transform' n=50000000                                                                                                                             0.47 %       ±0.71%  ±0.94%
streams/creation.js kind='writable' n=50000000                                                                                                                             -0.40 %       ±0.53%  ±0.70%
streams/destroy.js kind='duplex' n=1000000                                                                                                                                 -0.30 %       ±0.48%  ±0.64%
streams/destroy.js kind='readable' n=1000000                                                                                                                               -0.24 %       ±1.46%  ±1.95%
streams/destroy.js kind='transform' n=1000000                                                                                                                              -0.18 %       ±0.53%  ±0.71%
streams/destroy.js kind='writable' n=1000000                                                                                                                                0.43 %       ±0.60%  ±0.80%
streams/finished.js streamType='readable' n=10000000                                                                                                                       -0.24 %       ±0.59%  ±0.79%
streams/finished.js streamType='writable' n=10000000                                                                                                                       -0.23 %       ±0.54%  ±0.72%
streams/pipe-object-mode.js n=5000000                                                                                                                                      -0.38 %       ±2.09%  ±2.81%
streams/pipe.js n=5000000                                                                                                                                          ***    -10.06 %       ±0.36%  ±0.48%
streams/readable-async-iterator.js sync='no' n=100000                                                                                                               **     -2.00 %       ±1.32%  ±1.76%
streams/readable-async-iterator.js sync='yes' n=100000                                                                                                                      0.24 %       ±4.93%  ±6.56%
streams/readable-bigread.js n=1000                                                                                                                                         -0.04 %       ±2.60%  ±3.46%
streams/readable-bigunevenread.js n=1000                                                                                                                             *     -0.89 %       ±0.69%  ±0.93%
streams/readable-boundaryread.js type='buffer' n=2000                                                                                                                      -0.47 %       ±0.53%  ±0.70%
streams/readable-boundaryread.js type='string' n=2000                                                                                                                      -0.16 %       ±1.26%  ±1.67%
streams/readable-from.js type='array' n=10000000                                                                                                                     *      0.49 %       ±0.48%  ±0.63%
streams/readable-from.js type='async-generator' n=10000000                                                                                                         ***     -1.20 %       ±0.56%  ±0.75%
streams/readable-from.js type='sync-generator-with-async-values' n=10000000                                                                                        ***     -2.14 %       ±0.77%  ±1.03%
streams/readable-from.js type='sync-generator-with-sync-values' n=10000000                                                                                                  0.27 %       ±1.30%  ±1.74%
streams/readable-readall.js n=5000                                                                                                                                         -0.69 %       ±2.47%  ±3.29%
streams/readable-uint8array.js kind='encoding' n=1000000                                                                                                                    0.29 %       ±0.67%  ±0.90%
streams/readable-uint8array.js kind='read' n=1000000                                                                                                                        0.54 %       ±2.47%  ±3.29%
streams/readable-unevenread.js n=1000                                                                                                                                      -0.25 %       ±0.73%  ±0.97%
streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='no' n=100000                                                                                        1.55 %       ±3.39%  ±4.51%
streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='yes' n=100000                                                                                      -2.35 %       ±5.89%  ±7.84%
streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='no' n=100000                                                                                       0.17 %       ±5.14%  ±6.83%
streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='yes' n=100000                                                                                      8.66 %      ±11.88% ±15.81%
streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='no' n=100000                                                                                       1.87 %       ±3.92%  ±5.22%
streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='yes' n=100000                                                                                      6.35 %       ±6.53%  ±8.69%
streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='no' n=100000                                                                                      2.43 %       ±5.43%  ±7.22%
streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='yes' n=100000                                                                                     5.57 %      ±10.11% ±13.46%
streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='no' n=100000                                                                                      -2.61 %       ±4.57%  ±6.08%
streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='yes' n=100000                                                                                     -0.09 %       ±6.51%  ±8.66%
streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='no' n=100000                                                                                      2.30 %       ±4.92%  ±6.55%
streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='yes' n=100000                                                                                     0.36 %      ±10.91% ±14.52%
streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='no' n=100000                                                                                     -1.92 %       ±4.27%  ±5.69%
streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='yes' n=100000                                                                                    -0.82 %       ±6.13%  ±8.16%
streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='no' n=100000                                                                                     1.23 %       ±3.84%  ±5.11%
streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='yes' n=100000                                                                                   -0.58 %       ±9.24% ±12.29%
streams/writable-uint8array.js kind='object-mode' n=50000000                                                                                                                0.14 %       ±0.20%  ±0.27%
streams/writable-uint8array.js kind='write' n=50000000                                                                                                               *      0.32 %       ±0.28%  ±0.38%
streams/writable-uint8array.js kind='writev' n=50000000                                                                                                                     0.09 %       ±0.26%  ±0.34%
                                                                                                                                                              (***)
async_hooks/async-local-storage-getstore-nested-resources.js n=500000 resourceCount=10                                                                       ±2.06%
async_hooks/async-local-storage-getstore-nested-resources.js n=500000 resourceCount=100                                                                      ±1.25%
async_hooks/async-local-storage-getstore-nested-resources.js n=500000 resourceCount=1000                                                                     ±8.68%
async_hooks/async-local-storage-getstore-nested-run.js n=10000 storageCount=1                                                                                ±3.93%
async_hooks/async-local-storage-getstore-nested-run.js n=10000 storageCount=10                                                                               ±8.54%
async_hooks/async-local-storage-getstore-nested-run.js n=10000 storageCount=100                                                                              ±6.68%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=0                                                                             ±4.18%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=1                                                                             ±3.40%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=10                                                                            ±2.85%
async_hooks/async-local-storage-propagate-asyncresource.js n=1000 storageCount=100                                                                          ±25.31%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=0                                                                                ±16.58%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=1                                                                                ±13.38%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=10                                                                                ±8.76%
async_hooks/async-local-storage-propagate-promise.js n=100000 storageCount=100                                                                               ±8.54%
async_hooks/async-local-storage-run.js n=10000000                                                                                                            ±1.08%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-local-storage' benchmarker='wrk'      ±1.10%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-resource' benchmarker='wrk'           ±1.02%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='destroy' benchmarker='wrk'                  ±1.00%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-local-storage' benchmarker='wrk'  ±1.42%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-resource' benchmarker='wrk'       ±1.46%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='destroy' benchmarker='wrk'              ±1.14%
async_hooks/gc-tracking.js method='trackingDisabled' n=1000000                                                                                              ±17.88%
async_hooks/gc-tracking.js method='trackingEnabled' n=1000000                                                                                                ±6.46%
async_hooks/gc-tracking.js method='trackingEnabledWithDestroyHook' n=1000000                                                                                 ±1.18%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='after' benchmarker='wrk'                                                                    ±1.14%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='all' benchmarker='wrk'                                                                      ±1.31%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='before' benchmarker='wrk'                                                                   ±1.39%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='disabled' benchmarker='wrk'                                                                 ±1.32%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='init' benchmarker='wrk'                                                                     ±1.61%
async_hooks/http-server.js duration=5 connections=50 asyncHooks='none' benchmarker='wrk'                                                                     ±1.90%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='after' benchmarker='wrk'                                                                   ±1.71%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='all' benchmarker='wrk'                                                                     ±1.29%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='before' benchmarker='wrk'                                                                  ±1.33%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='disabled' benchmarker='wrk'                                                                ±1.46%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='init' benchmarker='wrk'                                                                    ±1.71%
async_hooks/http-server.js duration=5 connections=500 asyncHooks='none' benchmarker='wrk'                                                                    ±1.44%
async_hooks/promises.js asyncHooks='disabled' n=1000000                                                                                                      ±0.84%
async_hooks/promises.js asyncHooks='enabled' n=1000000                                                                                                       ±0.92%
async_hooks/promises.js asyncHooks='enabledWithDestroy' n=1000000                                                                                            ±1.65%
async_hooks/promises.js asyncHooks='enabledWithInitOnly' n=1000000                                                                                           ±0.70%
events/ee-add-remove.js n=1000000 removeListener=0 newListener=0                                                                                             ±1.51%
events/ee-add-remove.js n=1000000 removeListener=0 newListener=1                                                                                             ±1.54%
events/ee-add-remove.js n=1000000 removeListener=1 newListener=0                                                                                             ±2.27%
events/ee-add-remove.js n=1000000 removeListener=1 newListener=1                                                                                             ±2.13%
events/ee-emit.js listeners=1 argc=0 n=2000000                                                                                                               ±5.47%
events/ee-emit.js listeners=1 argc=10 n=2000000                                                                                                              ±3.91%
events/ee-emit.js listeners=1 argc=2 n=2000000                                                                                                               ±4.20%
events/ee-emit.js listeners=1 argc=4 n=2000000                                                                                                               ±6.66%
events/ee-emit.js listeners=10 argc=0 n=2000000                                                                                                              ±2.21%
events/ee-emit.js listeners=10 argc=10 n=2000000                                                                                                             ±1.38%
events/ee-emit.js listeners=10 argc=2 n=2000000                                                                                                              ±2.71%
events/ee-emit.js listeners=10 argc=4 n=2000000                                                                                                              ±2.20%
events/ee-emit.js listeners=5 argc=0 n=2000000                                                                                                               ±4.08%
events/ee-emit.js listeners=5 argc=10 n=2000000                                                                                                              ±3.16%
events/ee-emit.js listeners=5 argc=2 n=2000000                                                                                                               ±6.97%
events/ee-emit.js listeners=5 argc=4 n=2000000                                                                                                               ±3.91%
events/ee-listen-unique.js n=1000000 events=1                                                                                                                ±1.80%
events/ee-listen-unique.js n=1000000 events=10                                                                                                               ±3.12%
events/ee-listen-unique.js n=1000000 events=2                                                                                                                ±4.04%
events/ee-listen-unique.js n=1000000 events=20                                                                                                               ±2.73%
events/ee-listen-unique.js n=1000000 events=3                                                                                                                ±4.55%
events/ee-listen-unique.js n=1000000 events=5                                                                                                                ±6.05%
events/ee-listener-count-on-prototype.js n=50000000                                                                                                          ±3.65%
events/ee-listeners.js raw='false' listeners=5 n=5000000                                                                                                     ±3.00%
events/ee-listeners.js raw='false' listeners=50 n=5000000                                                                                                    ±0.64%
events/ee-listeners.js raw='true' listeners=5 n=5000000                                                                                                      ±6.15%
events/ee-listeners.js raw='true' listeners=50 n=5000000                                                                                                     ±1.90%
events/ee-once.js argc=0 n=20000000                                                                                                                          ±2.09%
events/ee-once.js argc=1 n=20000000                                                                                                                          ±3.00%
events/ee-once.js argc=4 n=20000000                                                                                                                          ±1.42%
events/ee-once.js argc=5 n=20000000                                                                                                                          ±1.80%
events/eventtarget-add-remove-abort.js nListener=1 n=100000                                                                                                 ±12.33%
events/eventtarget-add-remove-abort.js nListener=10 n=100000                                                                                                 ±2.55%
events/eventtarget-add-remove-abort.js nListener=5 n=100000                                                                                                  ±5.15%
events/eventtarget-add-remove.js nListener=1 n=100000                                                                                                       ±11.69%
events/eventtarget-add-remove.js nListener=10 n=100000                                                                                                       ±2.93%
events/eventtarget-add-remove.js nListener=5 n=100000                                                                                                        ±4.22%
events/eventtarget-creation.js n=1000000                                                                                                                     ±4.11%
events/eventtarget.js listeners=1 n=1000000                                                                                                                  ±2.95%
events/eventtarget.js listeners=10 n=1000000                                                                                                                 ±3.47%
events/eventtarget.js listeners=5 n=1000000                                                                                                                  ±2.55%
streams/compose.js n=1000                                                                                                                                    ±1.44%
streams/creation.js kind='duplex' n=50000000                                                                                                                 ±2.69%
streams/creation.js kind='readable' n=50000000                                                                                                               ±2.30%
streams/creation.js kind='transform' n=50000000                                                                                                              ±1.23%
streams/creation.js kind='writable' n=50000000                                                                                                               ±0.91%
streams/destroy.js kind='duplex' n=1000000                                                                                                                   ±0.84%
streams/destroy.js kind='readable' n=1000000                                                                                                                 ±2.54%
streams/destroy.js kind='transform' n=1000000                                                                                                                ±0.92%
streams/destroy.js kind='writable' n=1000000                                                                                                                 ±1.05%
streams/finished.js streamType='readable' n=10000000                                                                                                         ±1.02%
streams/finished.js streamType='writable' n=10000000                                                                                                         ±0.93%
streams/pipe-object-mode.js n=5000000                                                                                                                        ±3.71%
streams/pipe.js n=5000000                                                                                                                                    ±0.62%
streams/readable-async-iterator.js sync='no' n=100000                                                                                                        ±2.29%
streams/readable-async-iterator.js sync='yes' n=100000                                                                                                       ±8.55%
streams/readable-bigread.js n=1000                                                                                                                           ±4.50%
streams/readable-bigunevenread.js n=1000                                                                                                                     ±1.22%
streams/readable-boundaryread.js type='buffer' n=2000                                                                                                        ±0.92%
streams/readable-boundaryread.js type='string' n=2000                                                                                                        ±2.18%
streams/readable-from.js type='array' n=10000000                                                                                                             ±0.82%
streams/readable-from.js type='async-generator' n=10000000                                                                                                   ±0.97%
streams/readable-from.js type='sync-generator-with-async-values' n=10000000                                                                                  ±1.35%
streams/readable-from.js type='sync-generator-with-sync-values' n=10000000                                                                                   ±2.28%
streams/readable-readall.js n=5000                                                                                                                           ±4.29%
streams/readable-uint8array.js kind='encoding' n=1000000                                                                                                     ±1.17%
streams/readable-uint8array.js kind='read' n=1000000                                                                                                         ±4.29%
streams/readable-unevenread.js n=1000                                                                                                                        ±1.26%
streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='no' n=100000                                                                         ±5.87%
streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='yes' n=100000                                                                       ±10.21%
streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='no' n=100000                                                                        ±8.90%
streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='yes' n=100000                                                                      ±20.58%
streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='no' n=100000                                                                        ±6.80%
streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='yes' n=100000                                                                      ±11.32%
streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='no' n=100000                                                                       ±9.40%
streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='yes' n=100000                                                                     ±17.53%
streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='no' n=100000                                                                        ±7.91%
streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='yes' n=100000                                                                      ±11.27%
streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='no' n=100000                                                                       ±8.53%
streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='yes' n=100000                                                                     ±18.90%
streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='no' n=100000                                                                       ±7.41%
streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='yes' n=100000                                                                     ±10.62%
streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='no' n=100000                                                                      ±6.65%
streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='yes' n=100000                                                                    ±16.00%
streams/writable-uint8array.js kind='object-mode' n=50000000                                                                                                 ±0.35%
streams/writable-uint8array.js kind='write' n=50000000                                                                                                       ±0.49%
streams/writable-uint8array.js kind='writev' n=50000000                                                                                                      ±0.44%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 127 comparisons, you can thus
expect the following amount of false-positive results:
  6.35 false positives, when considering a   5% risk acceptance (*, **, ***),
  1.27 false positives, when considering a   1% risk acceptance (**, ***),
  0.13 false positives, when considering a 0.1% risk acceptance (***)

The case with noticeable regression might be events/ee-emit.js when listeners=1, about -15%.

/cc @nodejs/events

Copy link
Member

@LiviaMedeiros LiviaMedeiros left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM; although commit message doesn't exactly reflect most changes applied.

@aduh95 aduh95 merged commit 0392f0c into nodejs:main Nov 27, 2025
79 checks passed
@aduh95
Copy link
Contributor Author

aduh95 commented Nov 27, 2025

Landed in 0392f0c

@aduh95 aduh95 deleted the lib-functionprototypecall-arrays branch November 27, 2025 09:24
targos pushed a commit that referenced this pull request Nov 29, 2025
PR-URL: #60825
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Jordan Harband <ljharb@gmail.com>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author ready PRs that have at least one approval, no pending requests for changes, and a CI started. lib / src Issues and PRs related to general changes in the lib or src directory. needs-benchmark-ci PR that need a benchmark CI run. needs-ci PRs that need a full CI run.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants