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

lib: add uncurried accessor properties to primordials #36329

Conversation

ExE-Boss
Copy link
Contributor

Closes: #32127

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • commit message follows commit guidelines

@nodejs-github-bot nodejs-github-bot added the util Issues and PRs related to the built-in util module. label Nov 30, 2020
@aduh95
Copy link
Contributor

aduh95 commented Nov 30, 2020

I think that all property getters do not have a setter accessible to users. That would mean there is no "security" reason to add them to primordials, it's just more convenient to not duplicate calls to Object.getOwnPropertyDescriptor, right? I wonder if there may be a performance impact on startup time and memory usage to add all those getters if we are not using them right away.

@ExE-Boss
Copy link
Contributor Author

ExE-Boss commented Dec 1, 2020

I think that all property getters do not have a setter accessible to users.

Modifying the code to count and log the number of encountered setters shows that there are 22 setters encountered by the primordials code.

@aduh95
Copy link
Contributor

aduh95 commented Dec 1, 2020

Modifying the code to count and log the number of encountered setters shows that there are 22 setters encountered by the primordials code.

Interesting, I stand corrected :)

Can you also replace this instance in buffer.js:

node/lib/buffer.js

Lines 119 to 121 in 7d45dd9

const TypedArrayProto_byteLength = uncurryThis(
ObjectGetOwnPropertyDescriptor(TypedArrayPrototype,
'byteLength').get);

@ExE-Boss ExE-Boss force-pushed the lib/primordials/add-uncurried-accessors branch 2 times, most recently from 9cc02c7 to 73e07da Compare December 1, 2020 17:30
@ExE-Boss ExE-Boss requested a review from aduh95 December 1, 2020 17:31
@aduh95
Copy link
Contributor

aduh95 commented Dec 1, 2020

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/738/console (queued, will 404 until it launches)

@aduh95
Copy link
Contributor

aduh95 commented Dec 2, 2020

It seems to introduce some performance regressions, but it seems to me it's unrelated code 🤔
Benchmark results:

                                                                       onfidence improvement accuracy (*)    (**)   (***)
buffers/buffer-bytelength.js n=4000000 len=16 encoding='buffer'              ***     -6.19 %       ±2.86%  ±3.82%  ±4.99%
buffers/buffer-copy.js n=6000000 partial='true' bytes=32768                   **    -25.02 %      ±16.22% ±21.65% ±28.32%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='true       **     -5.57 %       ±3.52%  ±4.69%  ±6.13%
buffers/buffer-zero.js type='string' n=1000000                                **     -6.70 %       ±4.02%  ±5.36%  ±7.00%
                                                                                                                                           confidence improvement accuracy (*)    (**)   (***)
buffers/buffer-base64-decode.js size=8388608 n=32                                                                                                          1.30 %       ±2.35%  ±3.14%  ±4.12%
buffers/buffer-base64-decode-wrapped.js n=32 linesCount=524288 charsPerLine=76                                                                             0.29 %       ±1.81%  ±2.41%  ±3.14%
buffers/buffer-base64-encode.js n=32 len=67108864                                                                                                         -2.97 %       ±3.07%  ±4.09%  ±5.32%
buffers/buffer-bytelength.js n=4000000 len=16 encoding='base64'                                                                                            0.15 %       ±1.42%  ±1.90%  ±2.48%
buffers/buffer-bytelength.js n=4000000 len=16 encoding='buffer'                                                                                   ***     -6.19 %       ±2.86%  ±3.82%  ±4.99%
buffers/buffer-bytelength.js n=4000000 len=16 encoding='utf8'                                                                                              0.39 %       ±1.75%  ±2.33%  ±3.04%
buffers/buffer-bytelength.js n=4000000 len=256 encoding='base64'                                                                                          -1.94 %       ±3.34%  ±4.49%  ±5.94%
buffers/buffer-bytelength.js n=4000000 len=256 encoding='buffer'                                                                                          -5.39 %       ±6.26%  ±8.38% ±11.00%
buffers/buffer-bytelength.js n=4000000 len=256 encoding='utf8'                                                                                             0.47 %       ±0.77%  ±1.03%  ±1.34%
buffers/buffer-bytelength.js n=4000000 len=2 encoding='base64'                                                                                             0.41 %       ±7.66% ±10.20% ±13.29%
buffers/buffer-bytelength.js n=4000000 len=2 encoding='buffer'                                                                                      *     -3.89 %       ±3.33%  ±4.43%  ±5.78%
buffers/buffer-bytelength.js n=4000000 len=2 encoding='utf8'                                                                                               0.20 %       ±2.65%  ±3.55%  ±4.66%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16                                                                                         2.14 %       ±4.38%  ±5.84%  ±7.63%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16386                                                                                      0.80 %       ±1.28%  ±1.70%  ±2.22%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=4096                                                                                       3.58 %       ±4.66%  ±6.26%  ±8.27%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=512                                                                                        0.54 %       ±1.97%  ±2.62%  ±3.43%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16                                                                                         0.70 %       ±2.25%  ±3.00%  ±3.90%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16386                                                                                     -0.11 %       ±1.18%  ±1.58%  ±2.05%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=4096                                                                                      -0.59 %       ±0.99%  ±1.32%  ±1.72%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=512                                                                                       -0.27 %       ±1.95%  ±2.61%  ±3.42%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16                                                                                        -1.82 %       ±4.18%  ±5.61%  ±7.40%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16386                                                                                      0.93 %       ±3.29%  ±4.41%  ±5.78%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=4096                                                                                       3.07 %       ±4.15%  ±5.57%  ±7.35%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=512                                                                                        0.56 %       ±1.91%  ±2.54%  ±3.30%
buffers/buffer-compare.js n=1000000 size=16                                                                                                                2.33 %       ±4.28%  ±5.70%  ±7.45%
buffers/buffer-compare.js n=1000000 size=16386                                                                                                            -2.24 %       ±2.48%  ±3.33%  ±4.40%
buffers/buffer-compare.js n=1000000 size=4096                                                                                                             -3.73 %       ±4.67%  ±6.28%  ±8.28%
buffers/buffer-compare.js n=1000000 size=512                                                                                                               0.43 %       ±1.83%  ±2.45%  ±3.22%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='offset'                                                                                      1.96 %       ±3.77%  ±5.06%  ±6.66%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='slice'                                                                                       0.63 %       ±1.28%  ±1.71%  ±2.23%
buffers/buffer-compare-offset.js n=1000000 size=16 method='offset'                                                                                        -0.10 %       ±1.12%  ±1.48%  ±1.93%
buffers/buffer-compare-offset.js n=1000000 size=16 method='slice'                                                                                         -0.52 %       ±1.21%  ±1.62%  ±2.12%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='offset'                                                                                       0.62 %       ±2.69%  ±3.62%  ±4.80%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='slice'                                                                                       -0.26 %       ±2.17%  ±2.90%  ±3.81%
buffers/buffer-compare-offset.js n=1000000 size=512 method='offset'                                                                                        2.07 %       ±2.38%  ±3.17%  ±4.12%
buffers/buffer-compare-offset.js n=1000000 size=512 method='slice'                                                                                        -0.71 %       ±1.41%  ±1.88%  ±2.45%
buffers/buffer-concat-fill.js n=800000 extraSize=1                                                                                                        -4.59 %       ±7.00%  ±9.32% ±12.13%
buffers/buffer-concat-fill.js n=800000 extraSize=1024                                                                                               *      4.98 %       ±4.52%  ±6.01%  ±7.83%
buffers/buffer-concat-fill.js n=800000 extraSize=256                                                                                                      -2.36 %       ±5.84%  ±7.77% ±10.13%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=16                                                                                 4.01 %       ±5.19%  ±6.91%  ±8.99%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=4                                                                                  0.06 %       ±5.91%  ±7.86% ±10.25%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=16                                                                                  4.14 %       ±7.25%  ±9.75% ±12.91%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=4                                                                                   1.57 %       ±2.56%  ±3.41%  ±4.46%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=16                                                                                5.52 %       ±6.18%  ±8.22% ±10.71%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=4                                                                                 0.86 %       ±2.95%  ±3.93%  ±5.11%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=16                                                                                 3.50 %       ±4.72%  ±6.28%  ±8.17%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=4                                                                                 -3.17 %       ±4.64%  ±6.17%  ±8.04%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=16                                                                                  0.52 %       ±2.58%  ±3.44%  ±4.50%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=4                                                                                  -1.29 %       ±5.10%  ±6.84%  ±9.02%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=16                                                                                3.61 %       ±6.54%  ±8.71% ±11.37%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=4                                                                          *      4.26 %       ±3.92%  ±5.23%  ±6.82%
buffers/buffer-copy.js n=6000000 partial='false' bytes=0                                                                                                  -4.10 %       ±7.42%  ±9.95% ±13.11%
buffers/buffer-copy.js n=6000000 partial='false' bytes=128                                                                                                 0.80 %       ±2.33%  ±3.11%  ±4.04%
buffers/buffer-copy.js n=6000000 partial='false' bytes=32768                                                                                        *     -6.75 %       ±6.29%  ±8.38% ±10.91%
buffers/buffer-copy.js n=6000000 partial='false' bytes=8                                                                                                  -1.96 %       ±5.29%  ±7.10%  ±9.37%
buffers/buffer-copy.js n=6000000 partial='true' bytes=0                                                                                                   -0.68 %       ±3.37%  ±4.48%  ±5.84%
buffers/buffer-copy.js n=6000000 partial='true' bytes=128                                                                                                  0.36 %       ±0.91%  ±1.21%  ±1.58%
buffers/buffer-copy.js n=6000000 partial='true' bytes=32768                                                                                        **    -25.02 %      ±16.22% ±21.65% ±28.32%
buffers/buffer-copy.js n=6000000 partial='true' bytes=8                                                                                                    0.17 %       ±1.29%  ±1.73%  ±2.25%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc'                                                                                            -0.35 %       ±5.16%  ±6.87%  ±8.94%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc-fill'                                                                                        1.83 %       ±6.16%  ±8.19% ±10.67%
buffers/buffer-creation.js n=600000 len=1024 type='fast-allocUnsafe'                                                                                      -0.29 %       ±4.94%  ±6.57%  ±8.56%
buffers/buffer-creation.js n=600000 len=1024 type='slow-allocUnsafe'                                                                                       1.64 %       ±4.15%  ±5.52%  ±7.18%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc'                                                                                               6.21 %      ±10.95% ±14.57% ±18.97%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc-fill'                                                                                         -3.06 %       ±8.82% ±11.75% ±15.31%
buffers/buffer-creation.js n=600000 len=10 type='fast-allocUnsafe'                                                                                         2.45 %       ±8.32% ±11.08% ±14.44%
buffers/buffer-creation.js n=600000 len=10 type='slow-allocUnsafe'                                                                                        -1.16 %       ±6.60%  ±8.78% ±11.42%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc'                                                                                            -0.23 %       ±4.62%  ±6.15%  ±8.01%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc-fill'                                                                                       -0.49 %       ±4.45%  ±5.93%  ±7.72%
buffers/buffer-creation.js n=600000 len=4096 type='fast-allocUnsafe'                                                                                      -3.83 %       ±6.16%  ±8.22% ±10.76%
buffers/buffer-creation.js n=600000 len=4096 type='slow-allocUnsafe'                                                                                      -0.83 %       ±4.46%  ±5.94%  ±7.73%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc'                                                                                            -2.26 %       ±4.17%  ±5.55%  ±7.22%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc-fill'                                                                                       -2.36 %       ±3.54%  ±4.72%  ±6.14%
buffers/buffer-creation.js n=600000 len=8192 type='fast-allocUnsafe'                                                                                      -0.00 %       ±4.84%  ±6.43%  ±8.38%
buffers/buffer-creation.js n=600000 len=8192 type='slow-allocUnsafe'                                                                                      -2.17 %       ±4.97%  ±6.62%  ±8.62%
buffers/buffer-equals.js n=1000000 difflen='false' size=0                                                                                                 -2.28 %       ±8.84% ±11.82% ±15.53%
buffers/buffer-equals.js n=1000000 difflen='false' size=16386                                                                                             -0.75 %       ±1.58%  ±2.11%  ±2.74%
buffers/buffer-equals.js n=1000000 difflen='false' size=512                                                                                                0.15 %       ±1.23%  ±1.65%  ±2.16%
buffers/buffer-equals.js n=1000000 difflen='true' size=0                                                                                            *      6.43 %       ±5.81%  ±7.76% ±10.16%
buffers/buffer-equals.js n=1000000 difflen='true' size=16386                                                                                              -0.15 %       ±4.44%  ±5.94%  ±7.77%
buffers/buffer-equals.js n=1000000 difflen='true' size=512                                                                                                -0.84 %       ±4.07%  ±5.41%  ±7.05%
buffers/buffer-fill.js n=20000 size=65536 type='fill("")'                                                                                                  2.68 %       ±6.65%  ±8.93% ±11.79%
buffers/buffer-fill.js n=20000 size=65536 type='fill(0)'                                                                                                   4.82 %       ±6.15%  ±8.23% ±10.83%
buffers/buffer-fill.js n=20000 size=65536 type='fill(100)'                                                                                                 4.23 %       ±5.25%  ±7.03%  ±9.23%
buffers/buffer-fill.js n=20000 size=65536 type='fill(400)'                                                                                                 2.84 %       ±4.56%  ±6.07%  ±7.91%
buffers/buffer-fill.js n=20000 size=65536 type='fill(Buffer.alloc(1), 0)'                                                                                 -1.69 %       ±4.77%  ±6.35%  ±8.27%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t")'                                                                                                 3.90 %       ±4.04%  ±5.38%  ±7.00%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", 0)'                                                                                             -0.77 %       ±3.73%  ±4.96%  ±6.47%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", 0, "utf8")'                                                                                     -0.39 %       ±3.58%  ±4.76%  ±6.20%
buffers/buffer-fill.js n=20000 size=65536 type='fill("test")'                                                                                              0.23 %       ±3.31%  ±4.40%  ±5.73%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", "utf8")'                                                                                        -1.19 %       ±3.57%  ±4.77%  ±6.23%
buffers/buffer-fill.js n=20000 size=8192 type='fill("")'                                                                                                   5.09 %       ±8.32% ±11.14% ±14.64%
buffers/buffer-fill.js n=20000 size=8192 type='fill(0)'                                                                                                    3.88 %       ±6.98%  ±9.29% ±12.09%
buffers/buffer-fill.js n=20000 size=8192 type='fill(100)'                                                                                                  0.60 %       ±4.63%  ±6.17%  ±8.03%
buffers/buffer-fill.js n=20000 size=8192 type='fill(400)'                                                                                                  3.19 %       ±6.07%  ±8.08% ±10.52%
buffers/buffer-fill.js n=20000 size=8192 type='fill(Buffer.alloc(1), 0)'                                                                                   3.11 %       ±6.30%  ±8.41% ±10.99%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t")'                                                                                                  1.52 %       ±5.58%  ±7.45%  ±9.74%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", 0)'                                                                                              -0.91 %       ±3.94%  ±5.25%  ±6.83%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", 0, "utf8")'                                                                                      -0.25 %       ±5.98%  ±7.97% ±10.39%
buffers/buffer-fill.js n=20000 size=8192 type='fill("test")'                                                                                              -1.43 %       ±5.50%  ±7.31%  ±9.53%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", "utf8")'                                                                                          4.16 %       ±8.67% ±11.54% ±15.03%
buffers/buffer-from.js n=800000 len=100 source='array'                                                                                                     1.03 %       ±5.69%  ±7.58%  ±9.86%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer'                                                                                              -0.09 %       ±6.68%  ±8.92% ±11.66%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer-middle'                                                                                 *     -4.36 %       ±3.95%  ±5.25%  ±6.84%
buffers/buffer-from.js n=800000 len=100 source='buffer'                                                                                                    2.67 %       ±5.83%  ±7.76% ±10.10%
buffers/buffer-from.js n=800000 len=100 source='object'                                                                                                   -2.13 %       ±4.09%  ±5.44%  ±7.09%
buffers/buffer-from.js n=800000 len=100 source='string'                                                                                                   -1.30 %       ±8.19% ±10.90% ±14.21%
buffers/buffer-from.js n=800000 len=100 source='string-base64'                                                                                             0.21 %       ±8.09% ±10.82% ±14.19%
buffers/buffer-from.js n=800000 len=100 source='string-utf8'                                                                                               1.93 %       ±8.29% ±11.04% ±14.39%
buffers/buffer-from.js n=800000 len=100 source='uint16array'                                                                                               2.06 %       ±6.93%  ±9.24% ±12.07%
buffers/buffer-from.js n=800000 len=100 source='uint8array'                                                                                                2.27 %       ±4.51%  ±6.01%  ±7.84%
buffers/buffer-from.js n=800000 len=2048 source='array'                                                                                                    4.80 %      ±13.30% ±17.70% ±23.04%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer'                                                                                              1.24 %       ±7.56% ±10.07% ±13.14%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer-middle'                                                                                       3.53 %       ±6.14%  ±8.18% ±10.65%
buffers/buffer-from.js n=800000 len=2048 source='buffer'                                                                                                   0.09 %       ±6.68%  ±8.90% ±11.60%
buffers/buffer-from.js n=800000 len=2048 source='object'                                                                                                  -1.10 %       ±4.47%  ±5.95%  ±7.74%
buffers/buffer-from.js n=800000 len=2048 source='string'                                                                                                   9.07 %      ±12.88% ±17.13% ±22.30%
buffers/buffer-from.js n=800000 len=2048 source='string-base64'                                                                                     *     13.45 %      ±12.45% ±16.60% ±21.67%
buffers/buffer-from.js n=800000 len=2048 source='string-utf8'                                                                                             -4.43 %      ±12.78% ±17.00% ±22.13%
buffers/buffer-from.js n=800000 len=2048 source='uint16array'                                                                                       *      5.90 %       ±4.59%  ±6.11%  ±7.95%
buffers/buffer-from.js n=800000 len=2048 source='uint8array'                                                                                               1.93 %       ±5.63%  ±7.49%  ±9.76%
buffers/buffer-hex.js n=1000000 len=1024                                                                                                                  10.92 %      ±13.27% ±17.66% ±22.98%
buffers/buffer-hex.js n=1000000 len=64                                                                                                                     8.60 %      ±11.32% ±15.06% ±19.60%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='@'                                                                                -0.86 %       ±5.14%  ±6.85%  ±8.93%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='aaaaaaaaaaaaaaaaa'                                                                 1.28 %       ±3.02%  ±4.03%  ±5.26%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='Alice'                                                                            -0.51 %       ±3.03%  ±4.04%  ±5.26%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='found it very'                                                                     0.11 %       ±1.31%  ±1.74%  ±2.26%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='Gryphon'                                                                           1.52 %       ±2.22%  ±2.97%  ±3.88%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='</i> to the Caterpillar'                                                           0.18 %       ±2.09%  ±2.78%  ±3.63%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='--l'                                                                               1.63 %       ±2.35%  ±3.14%  ±4.09%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='neighbouring pool'                                                                -0.51 %       ±1.66%  ±2.22%  ±2.89%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='Ou est ma chatte?'                                                                 0.10 %       ±4.87%  ±6.48%  ±8.43%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='SQ'                                                                                1.70 %       ±1.80%  ±2.40%  ±3.12%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='ucs2' search='venture to go near the house till she had brought herself down to'                 1.40 %       ±3.30%  ±4.43%  ±5.84%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='@'                                                                                 0.12 %       ±4.99%  ±6.64%  ±8.64%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='aaaaaaaaaaaaaaaaa'                                                                -1.70 %       ±2.16%  ±2.88%  ±3.75%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='Alice'                                                                            -1.22 %       ±5.00%  ±6.66%  ±8.67%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='found it very'                                                                    -1.11 %       ±1.13%  ±1.51%  ±1.97%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='Gryphon'                                                                           1.57 %       ±3.94%  ±5.28%  ±6.95%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='</i> to the Caterpillar'                                                           0.78 %       ±1.98%  ±2.63%  ±3.42%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='--l'                                                                              -1.25 %       ±1.53%  ±2.04%  ±2.67%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='neighbouring pool'                                                                 0.29 %       ±2.08%  ±2.76%  ±3.60%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='Ou est ma chatte?'                                                                -0.03 %       ±4.84%  ±6.45%  ±8.43%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='SQ'                                                                               -0.14 %       ±3.13%  ±4.17%  ±5.42%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='utf8' search='venture to go near the house till she had brought herself down to'                 1.68 %       ±3.37%  ±4.51%  ±5.94%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='@'                                                                                 3.19 %       ±9.01% ±12.06% ±15.84%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='aaaaaaaaaaaaaaaaa'                                                                -1.76 %       ±2.88%  ±3.83%  ±4.99%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Alice'                                                                            -2.15 %       ±3.46%  ±4.60%  ±5.99%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='found it very'                                                              *      2.65 %       ±2.02%  ±2.70%  ±3.53%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Gryphon'                                                                           3.60 %       ±5.21%  ±7.00%  ±9.24%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='</i> to the Caterpillar'                                                          -0.30 %       ±2.22%  ±2.95%  ±3.84%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='--l'                                                                               1.60 %       ±4.57%  ±6.09%  ±7.93%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='neighbouring pool'                                                                -0.16 %       ±2.01%  ±2.68%  ±3.50%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Ou est ma chatte?'                                                                 0.73 %       ±3.78%  ±5.05%  ±6.59%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='SQ'                                                                               -1.52 %       ±1.90%  ±2.53%  ±3.30%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='venture to go near the house till she had brought herself down to'                 0.23 %       ±2.86%  ±3.81%  ±4.96%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='@'                                                                                 0.08 %       ±5.03%  ±6.69%  ±8.70%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='aaaaaaaaaaaaaaaaa'                                                          *      2.76 %       ±2.28%  ±3.04%  ±3.96%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Alice'                                                                            -2.23 %       ±4.59%  ±6.12%  ±7.98%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='found it very'                                                                     0.32 %       ±1.77%  ±2.36%  ±3.08%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Gryphon'                                                                           0.08 %       ±1.84%  ±2.44%  ±3.18%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='</i> to the Caterpillar'                                                           0.59 %       ±1.91%  ±2.54%  ±3.31%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='--l'                                                                               1.50 %       ±1.51%  ±2.01%  ±2.62%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='neighbouring pool'                                                                -0.17 %       ±2.10%  ±2.80%  ±3.65%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Ou est ma chatte?'                                                                -4.25 %       ±5.51%  ±7.41%  ±9.78%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='SQ'                                                                                0.82 %       ±3.41%  ±4.54%  ±5.91%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='venture to go near the house till she had brought herself down to'                 3.03 %       ±4.07%  ±5.47%  ±7.23%
buffers/buffer-indexof-number.js n=1000000 value=64                                                                                                       -0.27 %       ±3.04%  ±4.05%  ±5.27%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=16386                                                                                    -1.03 %       ±3.67%  ±4.90%  ±6.39%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=4096                                                                                      0.94 %       ±3.95%  ±5.26%  ±6.85%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=512                                                                                       0.40 %       ±5.31%  ±7.08%  ±9.23%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=16386                                                                                      -1.56 %       ±5.27%  ±7.01%  ±9.13%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=4096                                                                                       -5.56 %       ±6.39%  ±8.56% ±11.26%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=512                                                                                         0.27 %       ±4.17%  ±5.55%  ±7.22%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=16386                                                                                 -0.63 %       ±1.85%  ±2.46%  ±3.21%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=4096                                                                                  -0.84 %       ±4.08%  ±5.43%  ±7.08%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=512                                                                                   -4.23 %       ±4.76%  ±6.34%  ±8.26%
buffers/buffer-normalize-encoding.js n=1000000 encoding='ascii'                                                                                           -1.17 %       ±4.45%  ±5.94%  ±7.76%
buffers/buffer-normalize-encoding.js n=1000000 encoding='base64'                                                                                          -1.85 %       ±3.50%  ±4.66%  ±6.07%
buffers/buffer-normalize-encoding.js n=1000000 encoding='BASE64'                                                                                          -0.71 %       ±5.20%  ±6.92%  ±9.01%
buffers/buffer-normalize-encoding.js n=1000000 encoding='binary'                                                                                           1.19 %       ±4.58%  ±6.09%  ±7.93%
buffers/buffer-normalize-encoding.js n=1000000 encoding='hex'                                                                                              0.55 %       ±5.33%  ±7.13%  ±9.35%
buffers/buffer-normalize-encoding.js n=1000000 encoding='HEX'                                                                                             -2.51 %       ±8.71% ±11.65% ±15.27%
buffers/buffer-normalize-encoding.js n=1000000 encoding='latin1'                                                                                           2.31 %       ±4.88%  ±6.50%  ±8.47%
buffers/buffer-normalize-encoding.js n=1000000 encoding='LATIN1'                                                                                          -0.50 %       ±4.16%  ±5.54%  ±7.21%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS-2'                                                                                           -1.10 %       ±3.14%  ±4.18%  ±5.44%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS2'                                                                                            -0.10 %       ±4.16%  ±5.57%  ±7.31%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-16le'                                                                                        -2.74 %       ±3.24%  ±4.31%  ±5.61%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf16le'                                                                                          1.00 %       ±5.04%  ±6.72%  ±8.77%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF-16LE'                                                                                         0.25 %       ±4.34%  ±5.78%  ±7.53%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF16LE'                                                                                   *      3.48 %       ±3.32%  ±4.42%  ±5.77%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-8'                                                                                            0.37 %       ±5.16%  ±6.88%  ±8.98%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf8'                                                                                             4.64 %       ±4.83%  ±6.45%  ±8.43%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF8'                                                                                             0.73 %       ±4.63%  ±6.17%  ±8.04%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Double'                                                                               2.10 %       ±4.11%  ±5.47%  ±7.13%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Float'                                                                                0.42 %       ±4.61%  ±6.14%  ±7.99%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Double'                                                                               1.30 %       ±4.37%  ±5.82%  ±7.60%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Float'                                                                               -2.37 %       ±3.98%  ±5.30%  ±6.92%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Double'                                                                        *      5.80 %       ±5.48%  ±7.30%  ±9.53%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Float'                                                                                3.16 %       ±3.63%  ±4.83%  ±6.29%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Double'                                                                             3.29 %       ±5.53%  ±7.38%  ±9.65%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Float'                                                                              3.17 %       ±4.62%  ±6.16%  ±8.05%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Double'                                                                             -5.82 %       ±7.56% ±10.16% ±13.43%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Float'                                                                               2.44 %       ±3.73%  ±4.96%  ±6.46%
buffers/buffer-read.js n=1000000 type='BigInt64BE' buffer='fast'                                                                                           0.35 %       ±2.56%  ±3.40%  ±4.43%
buffers/buffer-read.js n=1000000 type='BigInt64LE' buffer='fast'                                                                                          -1.81 %       ±2.51%  ±3.34%  ±4.35%
buffers/buffer-read.js n=1000000 type='BigUInt64BE' buffer='fast'                                                                                          0.98 %       ±2.94%  ±3.91%  ±5.10%
buffers/buffer-read.js n=1000000 type='BigUInt64LE' buffer='fast'                                                                                          0.99 %       ±3.48%  ±4.64%  ±6.05%
buffers/buffer-read.js n=1000000 type='Int16BE' buffer='fast'                                                                                              0.91 %       ±3.71%  ±4.93%  ±6.43%
buffers/buffer-read.js n=1000000 type='Int16LE' buffer='fast'                                                                                             -1.60 %       ±4.54%  ±6.03%  ±7.85%
buffers/buffer-read.js n=1000000 type='Int32BE' buffer='fast'                                                                                             -1.03 %       ±4.84%  ±6.44%  ±8.39%
buffers/buffer-read.js n=1000000 type='Int32LE' buffer='fast'                                                                                              1.77 %       ±4.48%  ±5.97%  ±7.81%
buffers/buffer-read.js n=1000000 type='Int8' buffer='fast'                                                                                                -1.13 %       ±4.85%  ±6.46%  ±8.41%
buffers/buffer-read.js n=1000000 type='UInt16BE' buffer='fast'                                                                                             2.51 %       ±6.35%  ±8.45% ±11.00%
buffers/buffer-read.js n=1000000 type='UInt16LE' buffer='fast'                                                                                            -0.24 %       ±4.98%  ±6.63%  ±8.64%
buffers/buffer-read.js n=1000000 type='UInt32BE' buffer='fast'                                                                                            -0.11 %       ±4.82%  ±6.41%  ±8.34%
buffers/buffer-read.js n=1000000 type='UInt32LE' buffer='fast'                                                                                            -2.60 %       ±5.42%  ±7.23%  ±9.44%
buffers/buffer-read.js n=1000000 type='UInt8' buffer='fast'                                                                                                3.78 %       ±6.37%  ±8.49% ±11.10%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntBE' buffer='fast'                                                                   7.78 %       ±9.71% ±13.03% ±17.20%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntLE' buffer='fast'                                                                   3.60 %       ±6.11%  ±8.14% ±10.61%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntBE' buffer='fast'                                                                  3.43 %       ±5.58%  ±7.44%  ±9.72%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntLE' buffer='fast'                                                                 -4.95 %       ±5.32%  ±7.09%  ±9.26%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntBE' buffer='fast'                                                                  -0.43 %       ±6.38%  ±8.49% ±11.06%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntLE' buffer='fast'                                                                  -0.67 %       ±5.57%  ±7.41%  ±9.64%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntBE' buffer='fast'                                                                 -0.41 %       ±4.30%  ±5.73%  ±7.46%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntLE' buffer='fast'                                                                  0.26 %       ±5.04%  ±6.71%  ±8.73%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntBE' buffer='fast'                                                                  -0.33 %       ±4.83%  ±6.42%  ±8.36%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntLE' buffer='fast'                                                                  -1.27 %       ±6.03%  ±8.05% ±10.51%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntBE' buffer='fast'                                                                  2.46 %       ±4.82%  ±6.42%  ±8.35%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntLE' buffer='fast'                                                                  2.80 %       ±5.82%  ±7.75% ±10.09%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntBE' buffer='fast'                                                                  -1.32 %       ±4.73%  ±6.30%  ±8.20%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntLE' buffer='fast'                                                                  -0.29 %       ±4.39%  ±5.84%  ±7.61%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntBE' buffer='fast'                                                                 -1.11 %       ±5.85%  ±7.79% ±10.14%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntLE' buffer='fast'                                                                 -4.79 %       ±5.86%  ±7.81% ±10.20%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntBE' buffer='fast'                                                                  -0.64 %       ±4.26%  ±5.67%  ±7.39%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntLE' buffer='fast'                                                                   0.09 %       ±5.53%  ±7.36%  ±9.59%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntBE' buffer='fast'                                                                  0.89 %       ±5.79%  ±7.71% ±10.03%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntLE' buffer='fast'                                                                 -4.95 %       ±5.97%  ±7.97% ±10.40%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntBE' buffer='fast'                                                                   1.49 %       ±5.51%  ±7.34%  ±9.57%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntLE' buffer='fast'                                                                  -4.43 %       ±5.30%  ±7.10%  ±9.32%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntBE' buffer='fast'                                                                 -2.56 %       ±4.05%  ±5.39%  ±7.02%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntLE' buffer='fast'                                                                 -4.97 %       ±5.45%  ±7.29%  ±9.55%
buffers/buffer-slice.js n=1000000 type='fast'                                                                                                              0.72 %       ±3.47%  ±4.61%  ±6.01%
buffers/buffer-slice.js n=1000000 type='slow'                                                                                                              0.66 %       ±3.15%  ±4.19%  ±5.45%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='false'                                                                                  1.36 %       ±2.50%  ±3.33%  ±4.35%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='true'                                                                                  -0.22 %       ±2.36%  ±3.14%  ±4.08%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='false'                                                                                 -0.12 %       ±7.68% ±10.23% ±13.35%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='true'                                                                                   1.06 %       ±5.49%  ±7.30%  ±9.51%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='false'                                                                                  1.00 %       ±4.57%  ±6.16%  ±8.16%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='true'                                                                                  -1.51 %       ±6.31%  ±8.40% ±10.93%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='false'                                                                                 -0.31 %       ±2.67%  ±3.55%  ±4.64%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='true'                                                                                  -0.09 %       ±0.17%  ±0.23%  ±0.30%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='false'                                                                                 -1.24 %       ±2.50%  ±3.33%  ±4.34%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='true'                                                                           **     -5.57 %       ±3.52%  ±4.69%  ±6.13%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='false'                                                                                  0.72 %       ±4.91%  ±6.54%  ±8.51%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='true'                                                                                  -2.35 %       ±5.67%  ±7.56%  ±9.88%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='false'                                                                                  -1.20 %       ±1.55%  ±2.07%  ±2.70%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='true'                                                                                   -2.72 %       ±4.99%  ±6.69%  ±8.82%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='false'                                                                                  -2.06 %       ±4.63%  ±6.20%  ±8.16%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='true'                                                                                   -2.73 %       ±3.00%  ±4.01%  ±5.26%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='false'                                                                                  -1.30 %       ±5.11%  ±6.87%  ±9.10%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='true'                                                                                   -3.74 %       ±7.57% ±10.08% ±13.12%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='false'                                                                                    0.00 %       ±7.95% ±10.58% ±13.77%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='true'                                                                                    -0.03 %       ±5.83%  ±7.76% ±10.10%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='false'                                                                                   -0.21 %       ±0.48%  ±0.63%  ±0.83%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='true'                                                                                    -1.94 %       ±4.35%  ±5.86%  ±7.78%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='false'                                                                                   -0.53 %       ±7.52% ±10.01% ±13.04%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='true'                                                                                    -3.44 %       ±5.03%  ±6.79%  ±9.01%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='false'                                                                                  -1.03 %       ±3.16%  ±4.20%  ±5.47%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='true'                                                                                   -0.97 %       ±3.99%  ±5.32%  ±6.95%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='false'                                                                                   1.35 %       ±7.95% ±10.57% ±13.76%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='true'                                                                                    0.82 %       ±1.50%  ±2.00%  ±2.61%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='false'                                                                                  -1.51 %       ±5.12%  ±6.83%  ±8.92%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='true'                                                                                    0.04 %       ±4.48%  ±5.96%  ±7.76%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='false'                                                                                 -0.15 %       ±0.87%  ±1.16%  ±1.51%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='true'                                                                                   0.56 %       ±1.21%  ±1.64%  ±2.17%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='false'                                                                                 -1.49 %       ±2.28%  ±3.07%  ±4.06%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='true'                                                                                   0.03 %       ±2.68%  ±3.57%  ±4.65%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='false'                                                                                 -0.78 %       ±1.56%  ±2.10%  ±2.79%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='true'                                                                                   0.06 %       ±0.27%  ±0.37%  ±0.48%
buffers/buffer-tojson.js len=0 n=10000                                                                                                                    -0.89 %       ±4.12%  ±5.48%  ±7.13%
buffers/buffer-tojson.js len=256 n=10000                                                                                                                  -2.05 %       ±3.72%  ±4.96%  ±6.48%
buffers/buffer-tojson.js len=4096 n=10000                                                                                                                  0.35 %       ±3.53%  ±4.69%  ±6.11%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='ascii'                                                                                     -0.41 %       ±1.04%  ±1.38%  ±1.80%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='hex'                                                                                 *     -1.19 %       ±1.17%  ±1.56%  ±2.03%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='latin1'                                                                                    -1.05 %       ±1.09%  ±1.45%  ±1.88%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='UCS-2'                                                                                     -0.68 %       ±1.35%  ±1.80%  ±2.36%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='utf8'                                                                                      -0.87 %       ±1.05%  ±1.40%  ±1.83%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='ascii'                                                                               *     -0.91 %       ±0.88%  ±1.17%  ±1.53%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='hex'                                                                                        0.89 %       ±1.66%  ±2.21%  ±2.89%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='latin1'                                                                              *     -1.40 %       ±1.33%  ±1.77%  ±2.31%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='UCS-2'                                                                                     -2.23 %       ±3.44%  ±4.63%  ±6.14%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='utf8'                                                                                      -0.46 %       ±2.07%  ±2.77%  ±3.63%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='ascii'                                                                               *     -1.71 %       ±1.54%  ±2.06%  ±2.70%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='hex'                                                                                        1.37 %       ±1.99%  ±2.66%  ±3.51%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='latin1'                                                                                    -0.16 %       ±1.43%  ±1.91%  ±2.49%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='UCS-2'                                                                                     -0.24 %       ±1.14%  ±1.52%  ±1.98%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='utf8'                                                                                       0.78 %       ±2.19%  ±2.92%  ±3.82%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='ascii'                                                                                        -1.10 %       ±4.16%  ±5.57%  ±7.32%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='hex'                                                                                           0.66 %       ±2.15%  ±2.86%  ±3.73%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='latin1'                                                                                        0.77 %       ±2.11%  ±2.81%  ±3.66%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='UCS-2'                                                                                         1.78 %       ±5.93%  ±7.97% ±10.52%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='utf8'                                                                                          1.02 %       ±1.86%  ±2.47%  ±3.22%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='ascii'                                                                                         0.21 %       ±2.24%  ±2.99%  ±3.89%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='hex'                                                                                          -0.88 %       ±1.08%  ±1.44%  ±1.88%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='latin1'                                                                                       -1.59 %       ±2.71%  ±3.61%  ±4.70%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='UCS-2'                                                                                         0.63 %       ±1.83%  ±2.45%  ±3.19%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='utf8'                                                                                          0.26 %       ±1.82%  ±2.42%  ±3.15%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='ascii'                                                                                        -0.14 %       ±2.40%  ±3.19%  ±4.15%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='hex'                                                                                          -2.85 %       ±4.87%  ±6.48%  ±8.45%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='latin1'                                                                                        0.26 %       ±2.54%  ±3.39%  ±4.41%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='UCS-2'                                                                                        -1.24 %       ±2.17%  ±2.89%  ±3.76%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='utf8'                                                                                         -0.89 %       ±1.90%  ±2.53%  ±3.29%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='ascii'                                                                                       -0.84 %       ±1.80%  ±2.39%  ±3.12%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='hex'                                                                                          0.12 %       ±1.72%  ±2.28%  ±2.97%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='latin1'                                                                                      -1.74 %       ±1.77%  ±2.36%  ±3.08%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='UCS-2'                                                                                       -1.29 %       ±2.18%  ±2.90%  ±3.77%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='utf8'                                                                                        -0.65 %       ±1.83%  ±2.43%  ±3.17%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='ascii'                                                                                        0.63 %       ±1.98%  ±2.63%  ±3.43%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='hex'                                                                                          0.90 %       ±1.45%  ±1.93%  ±2.51%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='latin1'                                                                                      -0.49 %       ±1.67%  ±2.23%  ±2.91%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='UCS-2'                                                                                       -1.08 %       ±1.71%  ±2.28%  ±2.98%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='utf8'                                                                                        -1.42 %       ±1.63%  ±2.17%  ±2.84%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='ascii'                                                                                       -0.74 %       ±1.97%  ±2.64%  ±3.46%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='hex'                                                                                         -0.09 %       ±1.29%  ±1.73%  ±2.26%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='latin1'                                                                                       0.42 %       ±2.81%  ±3.74%  ±4.87%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='UCS-2'                                                                                       -0.54 %       ±1.72%  ±2.28%  ±2.97%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='utf8'                                                                                        -0.78 %       ±1.38%  ±1.83%  ±2.38%
buffers/buffer-write.js n=1000000 type='BigInt64BE' buffer='fast'                                                                                          0.28 %       ±0.58%  ±0.78%  ±1.01%
buffers/buffer-write.js n=1000000 type='BigInt64LE' buffer='fast'                                                                                          0.39 %       ±0.58%  ±0.78%  ±1.01%
buffers/buffer-write.js n=1000000 type='BigUInt64BE' buffer='fast'                                                                                        -0.91 %       ±1.84%  ±2.47%  ±3.26%
buffers/buffer-write.js n=1000000 type='BigUInt64LE' buffer='fast'                                                                                         0.15 %       ±1.20%  ±1.60%  ±2.10%
buffers/buffer-write.js n=1000000 type='DoubleBE' buffer='fast'                                                                                           -1.50 %       ±3.69%  ±4.92%  ±6.40%
buffers/buffer-write.js n=1000000 type='DoubleLE' buffer='fast'                                                                                            2.28 %       ±5.62%  ±7.49%  ±9.76%
buffers/buffer-write.js n=1000000 type='FloatBE' buffer='fast'                                                                                            -0.79 %       ±4.20%  ±5.59%  ±7.28%
buffers/buffer-write.js n=1000000 type='FloatLE' buffer='fast'                                                                                             1.44 %       ±5.50%  ±7.31%  ±9.52%
buffers/buffer-write.js n=1000000 type='Int16BE' buffer='fast'                                                                                            -3.51 %       ±5.23%  ±6.96%  ±9.08%
buffers/buffer-write.js n=1000000 type='Int16LE' buffer='fast'                                                                                            -1.06 %       ±4.12%  ±5.48%  ±7.13%
buffers/buffer-write.js n=1000000 type='Int32BE' buffer='fast'                                                                                            -0.40 %       ±4.68%  ±6.23%  ±8.11%
buffers/buffer-write.js n=1000000 type='Int32LE' buffer='fast'                                                                                             0.65 %       ±4.61%  ±6.14%  ±7.99%
buffers/buffer-write.js n=1000000 type='Int8' buffer='fast'                                                                                               -5.96 %       ±6.00%  ±8.01% ±10.48%
buffers/buffer-write.js n=1000000 type='IntBE' buffer='fast'                                                                                               1.64 %       ±3.71%  ±4.93%  ±6.42%
buffers/buffer-write.js n=1000000 type='IntLE' buffer='fast'                                                                                               3.46 %       ±5.20%  ±6.94%  ±9.08%
buffers/buffer-write.js n=1000000 type='UInt16BE' buffer='fast'                                                                                           -2.83 %       ±3.85%  ±5.14%  ±6.71%
buffers/buffer-write.js n=1000000 type='UInt16LE' buffer='fast'                                                                                           -0.52 %       ±4.03%  ±5.37%  ±6.99%
buffers/buffer-write.js n=1000000 type='UInt32BE' buffer='fast'                                                                                            0.71 %       ±3.69%  ±4.91%  ±6.39%
buffers/buffer-write.js n=1000000 type='UInt32LE' buffer='fast'                                                                                           -0.50 %       ±4.08%  ±5.43%  ±7.07%
buffers/buffer-write.js n=1000000 type='UInt8' buffer='fast'                                                                                               1.10 %       ±5.34%  ±7.13%  ±9.33%
buffers/buffer-write.js n=1000000 type='UIntBE' buffer='fast'                                                                                             -1.71 %       ±3.71%  ±4.93%  ±6.42%
buffers/buffer-write.js n=1000000 type='UIntLE' buffer='fast'                                                                                              3.87 %       ±4.78%  ±6.36%  ±8.28%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding=''                                                                                      0.50 %       ±2.32%  ±3.10%  ±4.06%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='ascii'                                                                                 0.44 %       ±9.79% ±13.03% ±16.96%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='hex'                                                                                  -0.11 %       ±0.83%  ±1.11%  ±1.44%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='latin1'                                                                                3.54 %       ±4.13%  ±5.53%  ±7.29%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf16le'                                                                               5.01 %       ±6.49%  ±8.74% ±11.59%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf8'                                                                                  0.96 %       ±3.77%  ±5.04%  ±6.60%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding=''                                                                                2.65 %       ±3.77%  ±5.08%  ±6.73%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='ascii'                                                                           0.20 %       ±1.07%  ±1.42%  ±1.85%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='hex'                                                                             1.74 %       ±4.01%  ±5.34%  ±6.96%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='latin1'                                                                         -0.39 %       ±1.24%  ±1.65%  ±2.15%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf16le'                                                                        -3.27 %       ±4.15%  ±5.55%  ±7.28%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf8'                                                                           -3.39 %       ±4.87%  ±6.55%  ±8.66%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding=''                                                                         2.76 %       ±4.51%  ±6.07%  ±8.02%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='ascii'                                                                    0.34 %       ±1.20%  ±1.60%  ±2.08%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='hex'                                                                      0.30 %       ±1.49%  ±1.99%  ±2.62%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='latin1'                                                                   0.56 %       ±2.34%  ±3.14%  ±4.14%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf16le'                                                                  0.62 %       ±1.09%  ±1.46%  ±1.90%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf8'                                                                    -0.38 %       ±2.26%  ±3.01%  ±3.92%
buffers/buffer-zero.js type='buffer' n=1000000                                                                                                            -1.99 %       ±3.39%  ±4.51%  ±5.88%
buffers/buffer-zero.js type='string' n=1000000                                                                                                     **     -6.70 %       ±4.02%  ±5.36%  ±7.00%
buffers/dataview-set.js n=1000000 type='Float32BE'                                                                                                         2.75 %       ±5.29%  ±7.05%  ±9.21%
buffers/dataview-set.js n=1000000 type='Float32LE'                                                                                                        -2.63 %       ±4.96%  ±6.61%  ±8.62%
buffers/dataview-set.js n=1000000 type='Float64BE'                                                                                                         0.06 %       ±5.93%  ±7.90% ±10.29%
buffers/dataview-set.js n=1000000 type='Float64LE'                                                                                                        -2.95 %       ±6.71%  ±8.93% ±11.62%
buffers/dataview-set.js n=1000000 type='Int16BE'                                                                                                          -2.23 %       ±4.42%  ±5.88%  ±7.66%
buffers/dataview-set.js n=1000000 type='Int16LE'                                                                                                           1.48 %       ±3.27%  ±4.35%  ±5.66%
buffers/dataview-set.js n=1000000 type='Int32BE'                                                                                                           5.12 %       ±5.39%  ±7.18%  ±9.35%
buffers/dataview-set.js n=1000000 type='Int32LE'                                                                                                           2.68 %       ±4.81%  ±6.40%  ±8.34%
buffers/dataview-set.js n=1000000 type='Int8'                                                                                                             -0.43 %       ±5.61%  ±7.47%  ±9.72%
buffers/dataview-set.js n=1000000 type='Uint16BE'                                                                                                         -3.20 %       ±5.02%  ±6.70%  ±8.74%
buffers/dataview-set.js n=1000000 type='Uint16LE'                                                                                                         -1.78 %       ±4.07%  ±5.43%  ±7.11%
buffers/dataview-set.js n=1000000 type='Uint32BE'                                                                                                         -0.27 %       ±3.92%  ±5.22%  ±6.80%
buffers/dataview-set.js n=1000000 type='Uint32LE'                                                                                                         -0.40 %       ±3.79%  ±5.04%  ±6.56%
buffers/dataview-set.js n=1000000 type='Uint8'                                                                                                            -0.46 %       ±6.39%  ±8.51% ±11.07%

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

@aduh95
Copy link
Contributor

aduh95 commented Dec 2, 2020

@aduh95 aduh95 added author ready PRs that have at least one approval, no pending requests for changes, and a CI started. request-ci Add this label to start a Jenkins CI on a PR. labels Dec 2, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 2, 2020
@nodejs-github-bot

This comment has been minimized.

@aduh95 aduh95 added the request-ci Add this label to start a Jenkins CI on a PR. label Dec 2, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 2, 2020
@nodejs-github-bot

This comment has been minimized.

@ExE-Boss
Copy link
Contributor Author

ExE-Boss commented Dec 2, 2020

@aduh95 There’s apparently a way to only restart the failed CI builds from the https://ci.nodejs.org page (e.g.: https://ci.nodejs.org/job/node-test-pull-request/34677/) without needing to rerun all CI builds:


From #35811 (comment):

Best thing to do with unrelated failures is to use "Resume Build" on the left nav. That will rebuild only the Jenkins subtasks that failed before. I'll go ahead and click "Resume Build" right now so you don't have to.

Optional thing you can do if you want to be a good citizen: Check to make sure that there are open issues for the tests that failed.

  • If not, open an issue.
  • If there are open issues and they haven't been updated in a while, consider leaving a comment and a copy/paste of the error trace so that it's clear that the issue is ongoing (and a recent trace will be more accurate/useful than a dated one).
  • If there are open issues and they have been updated recently, consider opening a PR to mark the test flaky.

@aduh95
Copy link
Contributor

aduh95 commented Dec 2, 2020

@ExE-Boss Can you rebase on top of c91e608 to fix the CI failure please?

@ExE-Boss ExE-Boss force-pushed the lib/primordials/add-uncurried-accessors branch from 73e07da to 02dad91 Compare December 2, 2020 21:53
@ExE-Boss
Copy link
Contributor Author

ExE-Boss commented Dec 2, 2020

@aduh95 Done.

@aduh95 aduh95 added the request-ci Add this label to start a Jenkins CI on a PR. label Dec 2, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 2, 2020
@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot

This comment has been minimized.

@nodejs-github-bot
Copy link
Collaborator

@ExE-Boss ExE-Boss requested a review from aduh95 December 4, 2020 03:43
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.

IMHO this change makes the code harder to read. Would you agree to create a function to avoid repeating the code over and over:

function defineGetterAndSetter(desc, dest, prefix, key) {
      const { enumerable, get, set } = desc;
      Reflect.defineProperty(dest, `${prefix}Get${key}`, {
        value: uncurryThis(get),
        enumerable
      });
      if (set !== undefined) {
        Reflect.defineProperty(dest, `${prefix}Set${key}`, {
          value: uncurryThis(set),
          enumerable
        });
      }
}

lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
lib/internal/per_context/primordials.js Outdated Show resolved Hide resolved
@ExE-Boss ExE-Boss force-pushed the lib/primordials/add-uncurried-accessors branch from fdcfeb0 to 4ec94c4 Compare December 5, 2020 15:53
@ExE-Boss ExE-Boss requested a review from aduh95 December 5, 2020 15:54
@aduh95 aduh95 added the request-ci Add this label to start a Jenkins CI on a PR. label Dec 5, 2020
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Dec 5, 2020
@nodejs-github-bot
Copy link
Collaborator

jasnell pushed a commit that referenced this pull request Dec 7, 2020
Closes: #32127

PR-URL: #36329
Fixes: #32127
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@jasnell
Copy link
Member

jasnell commented Dec 7, 2020

Landed in c83e599

@jasnell jasnell closed this Dec 7, 2020
@ExE-Boss ExE-Boss deleted the lib/primordials/add-uncurried-accessors branch December 7, 2020 18:25
danielleadams pushed a commit that referenced this pull request Dec 7, 2020
Closes: #32127

PR-URL: #36329
Fixes: #32127
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
@danielleadams danielleadams mentioned this pull request Dec 7, 2020
cjihrig pushed a commit to cjihrig/node that referenced this pull request Dec 8, 2020
Closes: nodejs#32127

PR-URL: nodejs#36329
Fixes: nodejs#32127
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
targos pushed a commit that referenced this pull request May 16, 2021
Closes: #32127

PR-URL: #36329
Fixes: #32127
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
targos pushed a commit that referenced this pull request Jun 11, 2021
Closes: #32127

PR-URL: #36329
Fixes: #32127
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. util Issues and PRs related to the built-in util module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants