node icon indicating copy to clipboard operation
node copied to clipboard

refactor: undefined check for tls_wrap

Open ttzztztz opened this issue 4 years ago • 17 comments

The if-else check is very long and redundant, I think we can refactor it with ?? operator.

Benchmark for this module is required, let's see whether this patch would have a negative effect on performance or not.

ttzztztz avatar Feb 18 '21 01:02 ttzztztz

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

Trott avatar Feb 18 '21 03:02 Trott

I have a 100% wrong rate on benchmark predictions lately, but I'm going to guess that this one will be fine. Shouldn't be a hot path, I don't think?

Trott avatar Feb 18 '21 03:02 Trott

Be aware that the behavior is being changed here with the use of ?? as it's now testing implicitly for null and undefined whereas previously it was checking for any false-y value (more equivalent to ||).

mscdex avatar Feb 18 '21 08:02 mscdex

Be aware that the behavior is being changed here with the use of ?? as it's now testing implicitly for null and undefined whereas previously it was checking for any false-y value (more equivalent to ||).

Thanks for your reminder, fixed in the commit 41b5267b180a8d88854dcf13709ec15eabdce169

ttzztztz avatar Feb 18 '21 08:02 ttzztztz

CI: https://ci.nodejs.org/job/node-test-pull-request/36205/

nodejs-github-bot avatar Feb 18 '21 10:02 nodejs-github-bot

Benchmark results show some regression, but it might be a false positive:

                                                                                                    confidence improvement accuracy (*)    (**)    (***)
tls/throughput-c2s.jssize=1048576 type='asc' dur=5                                                           *    -11.73 %      ±11.51% ±15.31%  ±19.93%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='asc' dur=5                  *    -11.93 %      ±10.56% ±14.05%  ±18.28%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='buf' dur=5                  *     13.22 %      ±12.62% ±16.79%  ±21.85%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='asc' dur=5                    **    -13.55 %       ±8.71% ±11.64%  ±15.23%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='utf' dur=5               *     -2.32 %       ±2.30%  ±3.09%   ±4.07%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=16777216 type='buf' dur=5            *     -2.36 %       ±2.35%  ±3.14%   ±4.11%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='asc' dur=5                     **    -14.79 %       ±9.40% ±12.57%  ±16.48%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='utf' dur=5                     **     19.69 %      ±11.95% ±15.96%  ±20.87%
                                                                                                    confidence improvement accuracy (*)    (**)    (***)
tls/convertprotocols.jsn=1                                                                                          6.50 %       ±6.82%  ±9.13%  ±11.98%
tls/convertprotocols.jsn=50000                                                                                      0.48 %       ±4.88%  ±6.50%   ±8.46%
tls/secure-pair.jssize=100 securing='clear' dur=5                                                                   3.72 %       ±5.77%  ±7.67%   ±9.99%
tls/secure-pair.jssize=100 securing='SecurePair' dur=5                                                              4.84 %      ±10.00% ±13.31%  ±17.32%
tls/secure-pair.jssize=100 securing='TLSSocket' dur=5                                                               0.80 %       ±6.36%  ±8.47%  ±11.02%
tls/secure-pair.jssize=1024 securing='clear' dur=5                                                                  4.48 %       ±9.98% ±13.28%  ±17.28%
tls/secure-pair.jssize=1024 securing='SecurePair' dur=5                                                             2.71 %       ±6.48%  ±8.63%  ±11.23%
tls/secure-pair.jssize=1024 securing='TLSSocket' dur=5                                                             -0.17 %       ±4.39%  ±5.84%   ±7.60%
tls/secure-pair.jssize=1048576 securing='clear' dur=5                                                               0.36 %       ±6.74%  ±8.97%  ±11.68%
tls/secure-pair.jssize=1048576 securing='SecurePair' dur=5                                                          5.91 %       ±8.91% ±11.86%  ±15.44%
tls/secure-pair.jssize=1048576 securing='TLSSocket' dur=5                                                           0.54 %       ±7.24%  ±9.63%  ±12.54%
tls/throughput-c2s.jssize=100 type='asc' dur=5                                                                     -2.71 %       ±6.53%  ±8.69%  ±11.31%
tls/throughput-c2s.jssize=100 type='buf' dur=5                                                                      0.18 %       ±7.62% ±10.14%  ±13.20%
tls/throughput-c2s.jssize=100 type='utf' dur=5                                                                      1.27 %       ±5.46%  ±7.27%   ±9.46%
tls/throughput-c2s.jssize=1024 type='asc' dur=5                                                                    -1.39 %       ±6.25%  ±8.32%  ±10.83%
tls/throughput-c2s.jssize=1024 type='buf' dur=5                                                                     2.61 %       ±5.67%  ±7.55%   ±9.83%
tls/throughput-c2s.jssize=1024 type='utf' dur=5                                                                    -1.13 %       ±6.65%  ±8.86%  ±11.55%
tls/throughput-c2s.jssize=1048576 type='asc' dur=5                                                           *    -11.73 %      ±11.51% ±15.31%  ±19.93%
tls/throughput-c2s.jssize=1048576 type='buf' dur=5                                                                 -0.74 %      ±12.07% ±16.06%  ±20.92%
tls/throughput-c2s.jssize=1048576 type='utf' dur=5                                                                  6.43 %      ±11.73% ±15.61%  ±20.32%
tls/throughput-c2s.jssize=16777216 type='asc' dur=5                                                                -1.15 %       ±4.91%  ±6.53%   ±8.50%
tls/throughput-c2s.jssize=16777216 type='buf' dur=5                                                                -2.05 %      ±10.46% ±13.92%  ±18.11%
tls/throughput-c2s.jssize=16777216 type='utf' dur=5                                                                -0.19 %       ±4.22%  ±5.61%   ±7.30%
tls/throughput-c2s.jssize=4194304 type='asc' dur=5                                                                 -7.17 %       ±8.46% ±11.27%  ±14.69%
tls/throughput-c2s.jssize=4194304 type='buf' dur=5                                                                  8.23 %      ±12.47% ±16.59%  ±21.60%
tls/throughput-c2s.jssize=4194304 type='utf' dur=5                                                                  3.16 %      ±10.34% ±13.76%  ±17.92%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='asc' dur=5                  *    -11.93 %      ±10.56% ±14.05%  ±18.28%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='buf' dur=5                  *     13.22 %      ±12.62% ±16.79%  ±21.85%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='utf' dur=5                        -4.37 %      ±10.84% ±14.42%  ±18.77%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=16777216 type='asc' dur=5                      -4.01 %       ±4.88%  ±6.51%   ±8.51%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=16777216 type='buf' dur=5                      10.64 %      ±10.77% ±14.34%  ±18.68%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=16777216 type='utf' dur=5                      -1.47 %       ±5.61%  ±7.47%   ±9.72%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='asc' dur=5                    **    -13.55 %       ±8.71% ±11.64%  ±15.23%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='buf' dur=5                            2.64 %       ±5.57%  ±7.42%   ±9.69%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='utf' dur=5                            5.63 %      ±10.37% ±13.82%  ±18.02%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=32768 type='asc' dur=5                          0.47 %      ±11.59% ±15.42%  ±20.08%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=32768 type='buf' dur=5                          2.53 %      ±11.31% ±15.05%  ±19.60%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=32768 type='utf' dur=5                          1.81 %      ±10.55% ±14.03%  ±18.26%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=131072 type='asc' dur=5                   0.35 %       ±2.30%  ±3.06%   ±3.98%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=131072 type='buf' dur=5                  -0.23 %       ±2.57%  ±3.43%   ±4.46%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=131072 type='utf' dur=5                   1.71 %       ±2.33%  ±3.11%   ±4.05%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=16777216 type='asc' dur=5                -1.81 %       ±1.94%  ±2.59%   ±3.37%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=16777216 type='buf' dur=5                 0.05 %       ±2.05%  ±2.73%   ±3.56%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=16777216 type='utf' dur=5                 0.04 %       ±0.93%  ±1.23%   ±1.61%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='asc' dur=5                     -2.12 %       ±2.49%  ±3.32%   ±4.36%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='buf' dur=5                      0.24 %       ±2.49%  ±3.32%   ±4.34%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='utf' dur=5               *     -2.32 %       ±2.30%  ±3.09%   ±4.07%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=32768 type='asc' dur=5                   -1.30 %       ±2.00%  ±2.67%   ±3.47%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=32768 type='buf' dur=5                   -1.81 %       ±3.04%  ±4.07%   ±5.33%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=32768 type='utf' dur=5                    1.45 %       ±2.41%  ±3.20%   ±4.17%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=131072 type='asc' dur=5                    -1.89 %       ±3.00%  ±4.00%   ±5.22%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=131072 type='buf' dur=5                    -0.18 %       ±2.25%  ±3.00%   ±3.90%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=131072 type='utf' dur=5                     0.91 %       ±2.19%  ±2.92%   ±3.81%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=16777216 type='asc' dur=5                   0.79 %       ±2.16%  ±2.87%   ±3.73%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=16777216 type='buf' dur=5            *     -2.36 %       ±2.35%  ±3.14%   ±4.11%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=16777216 type='utf' dur=5                  -0.12 %       ±0.66%  ±0.88%   ±1.14%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=256 type='asc' dur=5                       -1.15 %       ±2.47%  ±3.29%   ±4.29%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=256 type='buf' dur=5                       -1.24 %       ±2.46%  ±3.27%   ±4.26%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=256 type='utf' dur=5                       -0.96 %       ±1.19%  ±1.58%   ±2.07%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=32768 type='asc' dur=5                      1.03 %       ±2.17%  ±2.89%   ±3.76%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=32768 type='buf' dur=5                     -0.43 %       ±2.46%  ±3.27%   ±4.26%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=32768 type='utf' dur=5                     -1.05 %       ±1.60%  ±2.13%   ±2.78%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=131072 type='asc' dur=5                         -0.71 %      ±12.10% ±16.10%  ±20.95%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=131072 type='buf' dur=5                          2.68 %      ±12.60% ±16.77%  ±21.84%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=131072 type='utf' dur=5                          0.36 %      ±11.68% ±15.54%  ±20.23%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=16777216 type='asc' dur=5                       -0.94 %       ±4.25%  ±5.66%   ±7.36%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=16777216 type='buf' dur=5                        5.50 %      ±10.21% ±13.59%  ±17.69%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=16777216 type='utf' dur=5                       -1.02 %       ±5.94%  ±7.90%  ±10.28%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='asc' dur=5                     **    -14.79 %       ±9.40% ±12.57%  ±16.48%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='buf' dur=5                             1.68 %       ±4.95%  ±6.58%   ±8.57%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='utf' dur=5                     **     19.69 %      ±11.95% ±15.96%  ±20.87%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=32768 type='asc' dur=5                          -1.69 %      ±12.17% ±16.19%  ±21.07%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=32768 type='buf' dur=5                          -6.75 %      ±11.88% ±15.81%  ±20.58%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=32768 type='utf' dur=5                           7.03 %      ±12.08% ±16.08%  ±20.93%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=131072 type='asc' dur=5                   -2.12 %       ±2.55%  ±3.39%   ±4.41%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=131072 type='buf' dur=5                   -0.37 %       ±2.01%  ±2.67%   ±3.48%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=131072 type='utf' dur=5                    2.01 %       ±2.16%  ±2.87%   ±3.74%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=16777216 type='asc' dur=5                 -2.12 %       ±2.16%  ±2.87%   ±3.74%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=16777216 type='buf' dur=5                  0.36 %       ±2.61%  ±3.48%   ±4.53%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=16777216 type='utf' dur=5                 -0.04 %       ±1.50%  ±2.00%   ±2.62%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=256 type='asc' dur=5                       0.71 %       ±2.52%  ±3.36%   ±4.40%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=256 type='buf' dur=5                      -0.40 %       ±1.86%  ±2.48%   ±3.23%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=256 type='utf' dur=5                      -1.71 %       ±1.97%  ±2.63%   ±3.44%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=32768 type='asc' dur=5                    -0.43 %       ±2.45%  ±3.26%   ±4.24%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=32768 type='buf' dur=5                     0.09 %       ±1.82%  ±2.43%   ±3.16%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=32768 type='utf' dur=5                     0.28 %       ±1.99%  ±2.65%   ±3.45%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=131072 type='asc' dur=5                     -0.40 %       ±2.29%  ±3.05%   ±3.97%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=131072 type='buf' dur=5                      0.87 %       ±2.35%  ±3.13%   ±4.08%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=131072 type='utf' dur=5                     -0.65 %       ±2.01%  ±2.68%   ±3.49%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=16777216 type='asc' dur=5                   -0.58 %       ±2.37%  ±3.15%   ±4.10%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=16777216 type='buf' dur=5                    0.31 %       ±2.28%  ±3.04%   ±3.97%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=16777216 type='utf' dur=5                    0.50 %       ±1.24%  ±1.65%   ±2.14%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=256 type='asc' dur=5                        -0.10 %       ±2.23%  ±2.97%   ±3.87%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=256 type='buf' dur=5                        -1.16 %       ±1.93%  ±2.57%   ±3.35%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=256 type='utf' dur=5                         0.17 %       ±2.11%  ±2.81%   ±3.66%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=32768 type='asc' dur=5                      -0.84 %       ±2.49%  ±3.32%   ±4.32%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=32768 type='buf' dur=5                       0.08 %       ±2.29%  ±3.05%   ±3.98%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=32768 type='utf' dur=5                       0.66 %       ±2.12%  ±2.83%   ±3.68%
tls/tls-connect.jsdur=5 concurrency=1                                                                              30.17 %      ±37.26% ±68.55% ±152.26%
tls/tls-connect.jsdur=5 concurrency=10                                                                             10.97 %      ±29.24% ±53.70% ±118.94%

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

Spawning another CI to confirm results: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/954/ (queued, will 404 until it starts)

aduh95 avatar Feb 18 '21 18:02 aduh95

The benchmark 952 is an old commit which uses ?? operator, I'm afraid that this operator caused the regression.

I guess that the result of the benchmark 954 would be fine

ttzztztz avatar Feb 19 '21 00:02 ttzztztz

Benchmark results confirmed 🤔

                                                                                                    confidence improvement accuracy (*)    (**)   (***)
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='asc' dur=5                    **    -13.34 %       ±9.85% ±13.14% ±17.16%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='buf' dur=5                     *      4.33 %       ±3.86%  ±5.13%  ±6.68%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='buf' dur=5               *      2.71 %       ±2.53%  ±3.36%  ±4.38%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=256 type='utf' dur=5                 *     -3.12 %       ±2.80%  ±3.76%  ±4.96%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='asc' dur=5                     **    -12.37 %       ±9.22% ±12.34% ±16.21%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=131072 type='utf' dur=5            **     -2.89 %       ±1.84%  ±2.45%  ±3.19%
                                                                                                    confidence improvement accuracy (*)    (**)   (***)
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='asc' dur=5                         7.10 %      ±12.14% ±16.16% ±21.03%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='buf' dur=5                         7.91 %      ±13.09% ±17.42% ±22.67%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=131072 type='utf' dur=5                         3.68 %      ±10.92% ±14.52% ±18.90%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=16777216 type='asc' dur=5                       1.59 %       ±4.39%  ±5.85%  ±7.62%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=16777216 type='buf' dur=5                       1.49 %      ±11.11% ±14.78% ±19.24%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=16777216 type='utf' dur=5                      -0.40 %       ±5.55%  ±7.39%  ±9.62%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='asc' dur=5                    **    -13.34 %       ±9.85% ±13.14% ±17.16%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='buf' dur=5                     *      4.33 %       ±3.86%  ±5.13%  ±6.68%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=256 type='utf' dur=5                           -1.83 %       ±9.25% ±12.31% ±16.02%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=32768 type='asc' dur=5                          0.64 %      ±10.91% ±14.52% ±18.90%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=32768 type='buf' dur=5                         -7.97 %      ±10.83% ±14.42% ±18.78%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=0 sendchunklen=32768 type='utf' dur=5                          1.79 %      ±11.10% ±14.77% ±19.23%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=131072 type='asc' dur=5                   1.93 %       ±2.93%  ±3.90%  ±5.07%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=131072 type='buf' dur=5                   1.55 %       ±2.46%  ±3.27%  ±4.26%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=131072 type='utf' dur=5                  -1.58 %       ±2.51%  ±3.34%  ±4.36%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=16777216 type='asc' dur=5                -0.62 %       ±2.17%  ±2.89%  ±3.77%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=16777216 type='buf' dur=5                 1.78 %       ±1.95%  ±2.59%  ±3.37%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=16777216 type='utf' dur=5                 0.02 %       ±0.62%  ±0.82%  ±1.07%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='asc' dur=5                      1.73 %       ±2.30%  ±3.08%  ±4.04%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='buf' dur=5               *      2.71 %       ±2.53%  ±3.36%  ±4.38%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=256 type='utf' dur=5                      0.77 %       ±1.89%  ±2.54%  ±3.35%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=32768 type='asc' dur=5                    0.30 %       ±2.31%  ±3.07%  ±4.00%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=32768 type='buf' dur=5                    0.25 %       ±2.36%  ±3.13%  ±4.08%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=1048576 sendchunklen=32768 type='utf' dur=5                   -0.07 %       ±2.53%  ±3.37%  ±4.38%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=131072 type='asc' dur=5                     0.46 %       ±2.42%  ±3.22%  ±4.20%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=131072 type='buf' dur=5                     0.28 %       ±2.61%  ±3.47%  ±4.52%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=131072 type='utf' dur=5                     1.32 %       ±2.67%  ±3.55%  ±4.62%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=16777216 type='asc' dur=5                   0.22 %       ±2.42%  ±3.22%  ±4.20%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=16777216 type='buf' dur=5                   1.84 %       ±2.61%  ±3.49%  ±4.56%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=16777216 type='utf' dur=5                  -0.24 %       ±0.62%  ±0.83%  ±1.08%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=256 type='asc' dur=5                        0.25 %       ±3.03%  ±4.03%  ±5.25%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=256 type='buf' dur=5                        0.50 %       ±2.19%  ±2.92%  ±3.80%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=256 type='utf' dur=5                 *     -3.12 %       ±2.80%  ±3.76%  ±4.96%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=32768 type='asc' dur=5                     -0.50 %       ±1.89%  ±2.51%  ±3.28%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=32768 type='buf' dur=5                      0.01 %       ±2.60%  ±3.46%  ±4.50%
tls/throughput-s2c.jsrecvbufgenfn='false' recvbuflen=65536 sendchunklen=32768 type='utf' dur=5                      0.08 %       ±2.00%  ±2.66%  ±3.46%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=131072 type='asc' dur=5                          3.66 %      ±11.81% ±15.72% ±20.46%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=131072 type='buf' dur=5                         -0.45 %      ±11.86% ±15.78% ±20.54%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=131072 type='utf' dur=5                         -5.50 %      ±11.26% ±14.99% ±19.51%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=16777216 type='asc' dur=5                       -2.78 %       ±4.54%  ±6.04%  ±7.87%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=16777216 type='buf' dur=5                       -1.98 %      ±11.50% ±15.30% ±19.92%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=16777216 type='utf' dur=5                        1.13 %       ±4.98%  ±6.62%  ±8.62%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='asc' dur=5                     **    -12.37 %       ±9.22% ±12.34% ±16.21%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='buf' dur=5                            -1.72 %       ±5.92%  ±7.87% ±10.25%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=256 type='utf' dur=5                            -2.39 %       ±7.59% ±10.11% ±13.16%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=32768 type='asc' dur=5                          -3.42 %      ±11.88% ±15.80% ±20.56%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=32768 type='buf' dur=5                          -2.15 %      ±13.37% ±17.79% ±23.15%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=0 sendchunklen=32768 type='utf' dur=5                           0.33 %      ±11.53% ±15.36% ±20.01%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=131072 type='asc' dur=5                    0.31 %       ±2.24%  ±2.98%  ±3.88%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=131072 type='buf' dur=5                    0.00 %       ±2.41%  ±3.21%  ±4.17%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=131072 type='utf' dur=5            **     -2.89 %       ±1.84%  ±2.45%  ±3.19%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=16777216 type='asc' dur=5                  0.31 %       ±1.99%  ±2.65%  ±3.46%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=16777216 type='buf' dur=5                  0.66 %       ±1.74%  ±2.32%  ±3.02%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=16777216 type='utf' dur=5                  0.54 %       ±0.79%  ±1.05%  ±1.37%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=256 type='asc' dur=5                       0.09 %       ±1.59%  ±2.12%  ±2.76%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=256 type='buf' dur=5                      -0.83 %       ±2.64%  ±3.52%  ±4.59%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=256 type='utf' dur=5                      -0.36 %       ±1.59%  ±2.12%  ±2.78%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=32768 type='asc' dur=5                    -0.36 %       ±2.44%  ±3.24%  ±4.22%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=32768 type='buf' dur=5                    -1.02 %       ±3.22%  ±4.29%  ±5.59%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=1048576 sendchunklen=32768 type='utf' dur=5                    -0.25 %       ±2.02%  ±2.69%  ±3.50%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=131072 type='asc' dur=5                      2.00 %       ±2.61%  ±3.47%  ±4.52%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=131072 type='buf' dur=5                      2.11 %       ±2.21%  ±2.95%  ±3.84%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=131072 type='utf' dur=5                     -0.07 %       ±2.50%  ±3.33%  ±4.34%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=16777216 type='asc' dur=5                    1.10 %       ±2.14%  ±2.85%  ±3.72%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=16777216 type='buf' dur=5                   -1.41 %       ±2.25%  ±2.99%  ±3.90%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=16777216 type='utf' dur=5                   -0.12 %       ±1.47%  ±1.96%  ±2.55%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=256 type='asc' dur=5                        -2.10 %       ±2.23%  ±2.99%  ±3.93%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=256 type='buf' dur=5                         1.91 %       ±1.99%  ±2.66%  ±3.46%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=256 type='utf' dur=5                         0.49 %       ±1.10%  ±1.47%  ±1.92%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=32768 type='asc' dur=5                      -2.55 %       ±2.58%  ±3.44%  ±4.47%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=32768 type='buf' dur=5                      -1.71 %       ±2.65%  ±3.52%  ±4.59%
tls/throughput-s2c.jsrecvbufgenfn='true' recvbuflen=65536 sendchunklen=32768 type='utf' dur=5                      -0.20 %       ±1.92%  ±2.56%  ±3.33%

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

aduh95 avatar Feb 19 '21 08:02 aduh95

The benchmark 952 is an old commit which uses ?? operator, I'm afraid that this operator caused the regression.

FYI, benchmark 951 was testing fae6956, 952 was testing 41b5267.

aduh95 avatar Feb 19 '21 08:02 aduh95

Do we need a new benchmark run?

targos avatar Jul 11 '21 07:07 targos

CI: https://ci.nodejs.org/job/node-test-pull-request/38956/

nodejs-github-bot avatar Jul 11 '21 07:07 nodejs-github-bot

Do we need a new benchmark run?

Yes, I think. Because it has been a lot of days since the last benchmark attempt

ttzztztz avatar Jul 11 '21 13:07 ttzztztz

Benchmark CI run

mscdex avatar Jul 11 '21 23:07 mscdex

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

aduh95 avatar May 11 '24 17:05 aduh95

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

why the benchmark was aborted? @aduh95

ttzztztz avatar May 12 '24 13:05 ttzztztz

The machine stopped responding 🤷‍♂️

aduh95 avatar May 12 '24 15:05 aduh95

Let me try to run the benchmark locally

aduh95 avatar May 21 '24 10:05 aduh95