Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: undefined check for tls_wrap #37424

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

ttzztztz
Copy link
Contributor

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.

@nodejs-github-bot nodejs-github-bot added the tls Issues and PRs related to the tls subsystem. label Feb 18, 2021
@Trott
Copy link
Member

Trott commented Feb 18, 2021

@Trott
Copy link
Member

Trott commented Feb 18, 2021

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?

@mscdex
Copy link
Contributor

mscdex commented Feb 18, 2021

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 ||).

@ttzztztz
Copy link
Contributor Author

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

Copy link
Contributor

@aduh95 aduh95 left a comment

Choose a reason for hiding this comment

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

I'm also going to predict the benchmark results will be fine, and it improves the code readability.

@nodejs-github-bot
Copy link
Collaborator

@aduh95
Copy link
Contributor

aduh95 commented Feb 18, 2021

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)

@ttzztztz
Copy link
Contributor Author

ttzztztz commented Feb 19, 2021

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

@aduh95
Copy link
Contributor

aduh95 commented Feb 19, 2021

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
Copy link
Contributor

aduh95 commented Feb 19, 2021

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.

@targos targos added the request-ci Add this label to start a Jenkins CI on a PR. label Jul 11, 2021
@targos
Copy link
Member

targos commented Jul 11, 2021

Do we need a new benchmark run?

@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Jul 11, 2021
@nodejs-github-bot
Copy link
Collaborator

@ttzztztz
Copy link
Contributor Author

Do we need a new benchmark run?

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

@mscdex
Copy link
Contributor

mscdex commented Jul 11, 2021

Benchmark CI run

@aduh95
Copy link
Contributor

aduh95 commented May 11, 2024

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

@ttzztztz
Copy link
Contributor Author

@aduh95
Copy link
Contributor

aduh95 commented May 12, 2024

The machine stopped responding 🤷‍♂️

@aduh95
Copy link
Contributor

aduh95 commented May 21, 2024

Let me try to run the benchmark locally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tls Issues and PRs related to the tls subsystem.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants