refactor: undefined check for tls_wrap
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.
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/952/
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?
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 ||).
Be aware that the behavior is being changed here with the use of
??as it's now testing implicitly fornullandundefinedwhereas previously it was checking for any false-y value (more equivalent to||).
Thanks for your reminder, fixed in the commit 41b5267b180a8d88854dcf13709ec15eabdce169
CI: https://ci.nodejs.org/job/node-test-pull-request/36205/
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)
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
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 (***)
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.
Do we need a new benchmark run?
CI: https://ci.nodejs.org/job/node-test-pull-request/38956/
Do we need a new benchmark run?
Yes, I think. Because it has been a lot of days since the last benchmark attempt
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1560/
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1560/
why the benchmark was aborted? @aduh95
The machine stopped responding 🤷♂️
Let me try to run the benchmark locally