Skip to content

events: improve addAbortListener perf by saving the same options object - #52367

Merged
aduh95 merged 1 commit into
nodejs:mainfrom
rluvaton:improve-add-abort-listener-perf
Jun 8, 2026
Merged

events: improve addAbortListener perf by saving the same options object#52367
aduh95 merged 1 commit into
nodejs:mainfrom
rluvaton:improve-add-abort-listener-perf

Conversation

@rluvaton

@rluvatonrluvaton commented Apr 4, 2024

Copy link
Copy Markdown
Member

Benchmarks for test_runner (I tried to improve test_runner so this is why):

Benchmark link

15:12:27 confidence improvement accuracy (*) (**) (***)
15:12:27 test_runner/global-concurrent-tests.js type='async' n=100 0.97 % ±4.05% ±5.38% ±7.01%
15:12:27 test_runner/global-concurrent-tests.js type='async' n=1000 0.43 % ±0.84% ±1.12% ±1.46%
15:12:27 test_runner/global-concurrent-tests.js type='async' n=10000 *** 0.81 % ±0.42% ±0.57% ±0.74%
15:12:27 test_runner/global-concurrent-tests.js type='sync' n=100 -1.55 % ±2.57% ±3.42% ±4.45%
15:12:27 test_runner/global-concurrent-tests.js type='sync' n=1000 -0.63 % ±1.19% ±1.59% ±2.09%
15:12:27 test_runner/global-concurrent-tests.js type='sync' n=10000 *** 1.00 % ±0.44% ±0.58% ±0.76%
15:12:27 test_runner/global-sequential-tests.js type='async' n=100 2.79 % ±3.51% ±4.69% ±6.15%
15:12:27 test_runner/global-sequential-tests.js type='async' n=1000 0.76 % ±2.50% ±3.33% ±4.34%
15:12:27 test_runner/global-sequential-tests.js type='async' n=10000 -1.11 % ±3.73% ±4.96% ±6.46%
15:12:27 test_runner/global-sequential-tests.js type='sync' n=100 0.81 % ±4.60% ±6.13% ±7.97%
15:12:27 test_runner/global-sequential-tests.js type='sync' n=1000 -4.10 % ±4.14% ±5.54% ±7.27%
15:12:27 test_runner/global-sequential-tests.js type='sync' n=10000 1.71 % ±4.23% ±5.65% ±7.40%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=10 -2.51 % ±3.61% ±4.83% ±6.35%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=100 -0.34 % ±0.72% ±0.96% ±1.25%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=10 0.69 % ±0.96% ±1.28% ±1.66%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=100 * 0.46 % ±0.41% ±0.55% ±0.71%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=10 * -3.30 % ±2.69% ±3.58% ±4.67%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=100 *** 2.49 % ±1.42% ±1.89% ±2.48%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=10 -2.59 % ±3.02% ±4.07% ±5.39%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=100 -0.19 % ±0.76% ±1.01% ±1.31%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=10 0.46 % ±1.46% ±1.96% ±2.57%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=100 0.24 % ±0.40% ±0.54% ±0.70%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=10 -0.39 % ±2.18% ±2.91% ±3.79%
15:12:27 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=100 0.34 % ±1.88% ±2.50% ±3.26%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=10 -1.81 % ±4.40% ±5.87% ±7.67%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=100 0.49 % ±0.70% ±0.93% ±1.21%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=10 * 1.25 % ±1.19% ±1.59% ±2.08%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=100 0.37 % ±0.55% ±0.74% ±0.96%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=10 *** 0.78 % ±0.38% ±0.50% ±0.65%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=100 ** 0.26 % ±0.19% ±0.25% ±0.33%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=10 0.48 % ±4.18% ±5.57% ±7.25%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=100 0.58 % ±1.19% ±1.59% ±2.07%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=10 1.26 % ±1.66% ±2.21% ±2.89%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=100 * 0.49 % ±0.43% ±0.57% ±0.74%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=10 ** 0.64 % ±0.39% ±0.52% ±0.68%
15:12:27 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=100 *** 0.47 % ±0.15% ±0.20% ±0.27%
15:12:27 15:12:27 Be aware that when doing many comparisons the risk of a false-positive
15:12:27 result increases. In this case, there are 36 comparisons, you can thus
15:12:27 expect the following amount of false-positive results:
15:12:27 1.80 false positives, when considering a 5% risk acceptance (*, **, ***),
15:12:27 0.36 false positives, when considering a 1% risk acceptance (**, ***),
15:12:27 0.04 false positives, when considering a 0.1% risk acceptance (***)
Benchmarks before the primordial use (just for comparison with the new machines

Ran 3 times after @mcollina suggestion (ref #52253)

Run 1:

13:18:51 confidence improvement accuracy (*) (**) (***)
13:18:51 test_runner/global-concurrent-tests.js type='async' n=100 1.55 % ±2.93% ±3.92% ±5.12%
13:18:51 test_runner/global-concurrent-tests.js type='async' n=1000 0.09 % ±2.00% ±2.67% ±3.48%
13:18:51 test_runner/global-concurrent-tests.js type='async' n=10000 0.40 % ±0.42% ±0.57% ±0.74%
13:18:51 test_runner/global-concurrent-tests.js type='sync' n=100 -0.51 % ±2.74% ±3.64% ±4.74%
13:18:51 test_runner/global-concurrent-tests.js type='sync' n=1000 -0.03 % ±1.38% ±1.84% ±2.41%
13:18:51 test_runner/global-concurrent-tests.js type='sync' n=10000 *** 1.27 % ±0.50% ±0.67% ±0.87%
13:18:51 test_runner/global-sequential-tests.js type='async' n=100 0.38 % ±5.64% ±7.50% ±9.76%
13:18:51 test_runner/global-sequential-tests.js type='async' n=1000 -0.17 % ±2.78% ±3.69% ±4.81%
13:18:51 test_runner/global-sequential-tests.js type='async' n=10000 0.79 % ±2.92% ±3.88% ±5.06%
13:18:51 test_runner/global-sequential-tests.js type='sync' n=100 1.93 % ±4.57% ±6.08% ±7.91%
13:18:51 test_runner/global-sequential-tests.js type='sync' n=1000 2.57 % ±3.89% ±5.20% ±6.80%
13:18:51 test_runner/global-sequential-tests.js type='sync' n=10000 -1.32 % ±3.92% ±5.21% ±6.79%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=10 0.37 % ±3.81% ±5.07% ±6.60%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=100 ** 1.19 % ±0.85% ±1.14% ±1.49%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=10 0.84 % ±1.52% ±2.03% ±2.65%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=100 * 0.41 % ±0.34% ±0.46% ±0.59%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=10 -0.44 % ±2.10% ±2.80% ±3.65%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=100 0.74 % ±1.75% ±2.33% ±3.04%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=10 0.36 % ±1.79% ±2.38% ±3.11%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=100 -0.45 % ±0.76% ±1.01% ±1.32%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=10 0.31 % ±0.70% ±0.93% ±1.21%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=100 * 0.53 % ±0.46% ±0.61% ±0.80%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=10 1.69 % ±2.09% ±2.78% ±3.63%
13:18:51 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=100 -0.48 % ±1.46% ±1.94% ±2.53%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=10 -2.50 % ±3.55% ±4.76% ±6.28%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=100 0.78 % ±1.05% ±1.40% ±1.83%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=10 -0.45 % ±1.03% ±1.37% ±1.79%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=100 * 0.43 % ±0.39% ±0.52% ±0.68%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=10 * 0.39 % ±0.38% ±0.50% ±0.66%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=100 *** 0.42 % ±0.14% ±0.19% ±0.24%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=10 -1.56 % ±3.26% ±4.35% ±5.68%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=100 0.72 % ±1.10% ±1.47% ±1.91%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=10 -0.06 % ±0.75% ±1.00% ±1.31%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=100 * 0.55 % ±0.45% ±0.60% ±0.79%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=10 * 0.41 % ±0.34% ±0.45% ±0.59%
13:18:51 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=100 ** 0.30 % ±0.19% ±0.25% ±0.33%
13:18:51 13:18:51 Be aware that when doing many comparisons the risk of a false-positive
13:18:51 result increases. In this case, there are 36 comparisons, you can thus
13:18:51 expect the following amount of false-positive results:
13:18:51 1.80 false positives, when considering a 5% risk acceptance (*, **, ***),
13:18:51 0.36 false positives, when considering a 1% risk acceptance (**, ***),
13:18:51 0.04 false positives, when considering a 0.1% risk acceptance (***)

Run 2:

13:43:16 confidence improvement accuracy (*) (**) (***)
13:43:16 test_runner/global-concurrent-tests.js type='async' n=100 2.26 % ±3.77% ±5.02% ±6.56%
13:43:16 test_runner/global-concurrent-tests.js type='async' n=1000 0.64 % ±0.70% ±0.94% ±1.22%
13:43:16 test_runner/global-concurrent-tests.js type='async' n=10000 ** 0.86 % ±0.51% ±0.67% ±0.88%
13:43:16 test_runner/global-concurrent-tests.js type='sync' n=100 1.33 % ±2.84% ±3.78% ±4.93%
13:43:16 test_runner/global-concurrent-tests.js type='sync' n=1000 * 0.93 % ±0.74% ±0.99% ±1.30%
13:43:16 test_runner/global-concurrent-tests.js type='sync' n=10000 *** 1.15 % ±0.29% ±0.39% ±0.51%
13:43:16 test_runner/global-sequential-tests.js type='async' n=100 2.16 % ±3.72% ±4.97% ±6.52%
13:43:16 test_runner/global-sequential-tests.js type='async' n=1000 -0.65 % ±3.16% ±4.20% ±5.48%
13:43:16 test_runner/global-sequential-tests.js type='async' n=10000 0.33 % ±3.47% ±4.62% ±6.01%
13:43:16 test_runner/global-sequential-tests.js type='sync' n=100 -1.13 % ±4.43% ±5.90% ±7.68%
13:43:16 test_runner/global-sequential-tests.js type='sync' n=1000 0.39 % ±4.21% ±5.60% ±7.29%
13:43:16 test_runner/global-sequential-tests.js type='sync' n=10000 0.29 % ±3.11% ±4.15% ±5.40%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=10 -0.96 % ±3.11% ±4.14% ±5.40%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=100 -0.11 % ±0.82% ±1.10% ±1.43%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=10 0.65 % ±1.38% ±1.83% ±2.39%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=100 0.05 % ±0.38% ±0.50% ±0.65%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=10 0.19 % ±2.27% ±3.02% ±3.93%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=100 0.85 % ±1.64% ±2.19% ±2.85%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=10 -3.23 % ±5.23% ±6.97% ±9.11%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=100 0.33 % ±0.70% ±0.93% ±1.21%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=10 -0.09 % ±1.16% ±1.54% ±2.01%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=100 0.20 % ±0.45% ±0.60% ±0.78%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=10 0.83 % ±2.46% ±3.28% ±4.26%
13:43:16 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=100 0.64 % ±1.78% ±2.37% ±3.09%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=10 2.48 % ±2.96% ±3.94% ±5.15%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=100 -0.15 % ±1.34% ±1.78% ±2.32%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=10 0.60 % ±0.64% ±0.85% ±1.11%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=100 0.36 % ±0.48% ±0.64% ±0.83%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=10 0.40 % ±0.45% ±0.60% ±0.79%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=100 *** 0.44 % ±0.19% ±0.25% ±0.33%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=10 -2.04 % ±4.21% ±5.65% ±7.46%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=100 0.56 % ±1.20% ±1.60% ±2.08%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=10 0.79 % ±0.95% ±1.27% ±1.65%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=100 ** 0.71 % ±0.50% ±0.67% ±0.87%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=10 0.32 % ±0.41% ±0.55% ±0.71%
13:43:16 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=100 *** 0.45 % ±0.16% ±0.21% ±0.27%
13:43:16 13:43:16 Be aware that when doing many comparisons the risk of a false-positive
13:43:16 result increases. In this case, there are 36 comparisons, you can thus
13:43:16 expect the following amount of false-positive results:
13:43:16 1.80 false positives, when considering a 5% risk acceptance (*, **, ***),
13:43:16 0.36 false positives, when considering a 1% risk acceptance (**, ***),
13:43:16 0.04 false positives, when considering a 0.1% risk acceptance (***)

Run 3:

14:04:10 confidence improvement accuracy (*) (**) (***)
14:04:10 test_runner/global-concurrent-tests.js type='async' n=100 -0.20 % ±3.59% ±4.77% ±6.21%
14:04:10 test_runner/global-concurrent-tests.js type='async' n=1000 0.92 % ±1.58% ±2.10% ±2.73%
14:04:10 test_runner/global-concurrent-tests.js type='async' n=10000 ** 0.52 % ±0.33% ±0.44% ±0.57%
14:04:10 test_runner/global-concurrent-tests.js type='sync' n=100 0.81 % ±2.61% ±3.48% ±4.54%
14:04:10 test_runner/global-concurrent-tests.js type='sync' n=1000 0.08 % ±0.75% ±1.00% ±1.30%
14:04:10 test_runner/global-concurrent-tests.js type='sync' n=10000 *** 1.11 % ±0.35% ±0.46% ±0.60%
14:04:10 test_runner/global-sequential-tests.js type='async' n=100 2.72 % ±3.96% ±5.27% ±6.87%
14:04:10 test_runner/global-sequential-tests.js type='async' n=1000 2.57 % ±4.77% ±6.35% ±8.26%
14:04:10 test_runner/global-sequential-tests.js type='async' n=10000 3.49 % ±4.32% ±5.76% ±7.52%
14:04:10 test_runner/global-sequential-tests.js type='sync' n=100 -3.66 % ±4.10% ±5.45% ±7.11%
14:04:10 test_runner/global-sequential-tests.js type='sync' n=1000 0.00 % ±3.11% ±4.15% ±5.44%
14:04:10 test_runner/global-sequential-tests.js type='sync' n=10000 -1.04 % ±3.59% ±4.78% ±6.23%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=10 0.56 % ±2.86% ±3.81% ±4.98%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=100 -0.79 % ±0.89% ±1.19% ±1.55%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=10 -0.50 % ±1.34% ±1.79% ±2.35%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=100 * 0.37 % ±0.36% ±0.48% ±0.62%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=10 -0.88 % ±2.29% ±3.05% ±3.97%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=100 0.40 % ±1.67% ±2.23% ±2.90%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=10 4.31 % ±5.09% ±6.82% ±8.96%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=100 -0.24 % ±0.75% ±1.00% ±1.30%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=10 0.73 % ±0.95% ±1.27% ±1.66%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=100 -0.03 % ±0.41% ±0.54% ±0.71%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=10 -1.17 % ±2.20% ±2.93% ±3.82%
14:04:10 test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=100 -1.11 % ±2.01% ±2.68% ±3.49%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=10 -2.61 % ±4.14% ±5.51% ±7.18%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=100 1.04 % ±1.12% ±1.49% ±1.96%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=10 0.04 % ±0.88% ±1.17% ±1.52%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=100 0.44 % ±0.46% ±0.61% ±0.79%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=10 * 0.46 % ±0.40% ±0.53% ±0.69%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=100 *** 0.37 % ±0.14% ±0.18% ±0.24%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=10 1.14 % ±2.60% ±3.46% ±4.52%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=100 0.68 % ±1.16% ±1.54% ±2.01%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=10 -0.13 % ±1.45% ±1.93% ±2.53%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=100 * 0.51 % ±0.50% ±0.66% ±0.87%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=10 * 0.39 % ±0.35% ±0.46% ±0.61%
14:04:10 test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=100 *** 0.42 % ±0.18% ±0.23% ±0.31%
14:04:10 14:04:10 Be aware that when doing many comparisons the risk of a false-positive
14:04:10 result increases. In this case, there are 36 comparisons, you can thus
14:04:10 expect the following amount of false-positive results:
14:04:10 1.80 false positives, when considering a 5% risk acceptance (*, **, ***),
14:04:10 0.36 false positives, when considering a 1% risk acceptance (**, ***),
14:04:10 0.04 false positives, when considering a 0.1% risk acceptance (***)

@nodejs-github-botnodejs-github-bot added events Issues and PRs related to the events subsystem / EventEmitter. needs-ci PRs that need a full CI run. labels Apr 4, 2024
@rluvatonrluvaton added the needs-benchmark-ci PR that need a benchmark CI run. label Apr 4, 2024
@rluvaton
rluvatonforce-pushed the improve-add-abort-listener-perf branch from 4453ccb to d5337f3CompareApril 4, 2024 13:11
@rluvatonrluvaton added request-ci Add this label to start a Jenkins CI on a PR. and removed needs-benchmark-ci PR that need a benchmark CI run. labels Apr 4, 2024
@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 4, 2024
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@rluvaton
rluvatonforce-pushed the improve-add-abort-listener-perf branch from d5337f3 to 92ac6edCompareApril 4, 2024 13:29
@rluvatonrluvaton added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 4, 2024
@rluvaton
rluvaton marked this pull request as ready for review April 4, 2024 13:51
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@github-actionsgithub-actionsBot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 4, 2024
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@rluvatonrluvaton added the performance Issues and PRs related to the performance of Node.js. label Apr 6, 2024
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@aduh95
aduh95force-pushed the improve-add-abort-listener-perf branch from 92ac6ed to ae29058CompareJune 5, 2026 12:11
@aduh95

aduh95 commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1865/

Results
 confidence improvement accuracy (*) (**) (***)
test_runner/global-concurrent-tests.js type='async' n=100 1.75 % ±6.34% ±8.44% ±10.98%
test_runner/global-concurrent-tests.js type='async' n=1000 1.13 % ±2.05% ±2.73% ±3.55%
test_runner/global-concurrent-tests.js type='async' n=10000 -0.29 % ±0.49% ±0.65% ±0.85%
test_runner/global-concurrent-tests.js type='sync' n=100 0.07 % ±6.49% ±8.64% ±11.25%
test_runner/global-concurrent-tests.js type='sync' n=1000 1.60 % ±2.46% ±3.27% ±4.27%
test_runner/global-concurrent-tests.js type='sync' n=10000 ** 0.65 % ±0.44% ±0.58% ±0.76%
test_runner/global-sequential-tests.js type='async' n=100 -0.18 % ±3.18% ±4.26% ±5.59%
test_runner/global-sequential-tests.js type='async' n=1000 25.19 % ±47.56% ±63.29% ±82.37%
test_runner/global-sequential-tests.js type='async' n=10000 3.09 % ±9.88% ±13.29% ±17.60%
test_runner/global-sequential-tests.js type='sync' n=100 0.75 % ±3.00% ±4.01% ±5.28%
test_runner/global-sequential-tests.js type='sync' n=1000 5.76 % ±50.56% ±67.28% ±87.56%
test_runner/global-sequential-tests.js type='sync' n=10000 -13.04 % ±15.25% ±20.54% ±27.24%
test_runner/mock-fn.js mode='define' n=1000000 0.13 % ±0.79% ±1.05% ±1.37%
test_runner/mock-fn.js mode='execute' n=1000000 -0.56 % ±0.64% ±0.86% ±1.13%
test_runner/run-single-test-file.js isolation='none' numberOfTestFiles=1 -2.40 % ±4.39% ±5.84% ±7.62%
test_runner/run-single-test-file.js isolation='none' numberOfTestFiles=10 3.82 % ±6.15% ±8.18% ±10.65%
test_runner/run-single-test-file.js isolation='none' numberOfTestFiles=100 0.85 % ±2.32% ±3.09% ±4.02%
test_runner/run-single-test-file.js isolation='process' numberOfTestFiles=1 -1.00 % ±2.82% ±3.76% ±4.89%
test_runner/run-single-test-file.js isolation='process' numberOfTestFiles=10 0.53 % ±0.76% ±1.02% ±1.32%
test_runner/run-single-test-file.js isolation='process' numberOfTestFiles=100 *** 0.57 % ±0.31% ±0.41% ±0.54%
test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=10 0.17 % ±6.82% ±9.08% ±11.83%
test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=10 numberOfSuites=100 0.12 % ±2.00% ±2.67% ±3.48%
test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=10 -0.50 % ±2.05% ±2.72% ±3.55%
test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=100 numberOfSuites=100 0.52 % ±0.64% ±0.85% ±1.10%
test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=10 0.26 % ±0.41% ±0.54% ±0.71%
test_runner/suite-tests.js concurrency='no' testType='async' testsPerSuite=1000 numberOfSuites=100 *** 0.54 % ±0.29% ±0.39% ±0.51%
test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=10 -4.96 % ±6.87% ±9.15% ±11.92%
test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=10 numberOfSuites=100 1.04 % ±2.08% ±2.77% ±3.61%
test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=10 0.52 % ±1.68% ±2.24% ±2.91%
test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=100 numberOfSuites=100 0.44 % ±0.50% ±0.66% ±0.87%
test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=10 ** 0.74 % ±0.50% ±0.67% ±0.87%
test_runner/suite-tests.js concurrency='no' testType='sync' testsPerSuite=1000 numberOfSuites=100 *** 0.67 % ±0.34% ±0.45% ±0.59%
test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=10 1.27 % ±6.07% ±8.08% ±10.52%
test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=10 numberOfSuites=100 * 2.10 % ±1.70% ±2.27% ±2.95%
test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=10 0.56 % ±2.11% ±2.81% ±3.66%
test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=100 numberOfSuites=100 0.11 % ±0.61% ±0.82% ±1.07%
test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=10 0.25 % ±0.48% ±0.64% ±0.83%
test_runner/suite-tests.js concurrency='yes' testType='async' testsPerSuite=1000 numberOfSuites=100 *** 0.54 % ±0.28% ±0.37% ±0.48%
test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=10 2.73 % ±6.90% ±9.19% ±11.97%
test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=10 numberOfSuites=100 1.03 % ±2.33% ±3.10% ±4.04%
test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=10 0.27 % ±1.94% ±2.58% ±3.37%
test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=100 numberOfSuites=100 0.20 % ±0.67% ±0.90% ±1.17%
test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=10 0.27 % ±0.51% ±0.68% ±0.89%
test_runner/suite-tests.js concurrency='yes' testType='sync' testsPerSuite=1000 numberOfSuites=100 *** 0.93 % ±0.27% ±0.36% ±0.47%
test_runner/test-reporters.js reporter='dot' n=10000 0.07 % ±0.56% ±0.75% ±0.97%
test_runner/test-reporters.js reporter='junit' n=10000 -0.17 % ±0.46% ±0.61% ±0.79%
test_runner/test-reporters.js reporter='lcov' n=10000 0.32 % ±0.54% ±0.72% ±0.94%
test_runner/test-reporters.js reporter='spec' n=10000 0.10 % ±0.52% ±0.69% ±0.89%
test_runner/test-reporters.js reporter='tap' n=10000 -0.25 % ±0.69% ±0.91% ±1.19%
Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 49 comparisons, you can thus
expect the following amount of false-positive results:
2.45 false positives, when considering a 5% risk acceptance (*, **, ***),
0.49 false positives, when considering a 1% risk acceptance (**, ***),
0.05 false positives, when considering a 0.1% risk acceptance (***)

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@aduh95aduh95 added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Jun 8, 2026
@rluvatonrluvaton added the commit-queue Add this label to land a pull request using GitHub Actions. label Jun 8, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

@aduh95aduh95 removed the commit-queue Add this label to land a pull request using GitHub Actions. label Jun 8, 2026
@aduh95
aduh95 merged commit 3449b86 into nodejs:mainJun 8, 2026
70 of 71 checks passed
@aduh95

Copy link
Copy Markdown
Contributor

Landed in 3449b86

aduh95 pushed a commit that referenced this pull request Jun 18, 2026
PR-URL: #52367
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
aduh95 pushed a commit that referenced this pull request Jun 25, 2026
PR-URL: #52367
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
aduh95 pushed a commit that referenced this pull request Jul 30, 2026
PR-URL: #52367
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

author readyPRs that have at least one approval, no pending requests for changes, and a CI started.eventsIssues and PRs related to the events subsystem / EventEmitter.needs-ciPRs that need a full CI run.performanceIssues and PRs related to the performance of Node.js.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@rluvaton@nodejs-github-bot@aduh95