nodejs / CTC

Node.js Core Technical Committee & Collaborators
80 stars 27 forks source link

V8 5.9 & Node.js 8.0 #146

Closed rvagg closed 7 years ago

rvagg commented 7 years ago
  1. We have perf regressions with 5.9 that seem fairly serious, at least when looked at in our microbenchmark suite, at least from the one run that was done early on
  2. 6.0 doesn't appear to have any difference from those benchmarks (so I'm hearing, have no confirmed any of this myself), this suggests to me that we're not going to get much upstream help in reigning in perf problems; so see next point:
  3. Our "CrankshaftScript" is going to need heavy-handed refactoring to make it "TurboFanScript", it's unlikely to be a clean process given how much untangling will need to be done—I'd expect us to hit a bunch of edge cases we don't have tests for, just because that's the nature of perf optimised crazy-code, and this will be ongoing too as the process of learning how to pander to TurboFan is going to be a long one (I think?)
  4. We are heading toward an LTS and the window is smaller than normal but we must stabilise early and not be scrambling to apply lipstick if we discover that it's looking like a pig

We have a really good record with our two LTS lines so far, I'm really concerned we're just rolling forward into a mini disaster for 8.0 LTS without weighing up the concerns.

@vsemozhetbyt and @targos so far appear to be the only ones who have investigated this, posted in https://github.com/nodejs/node/issues/11851 which used a 5.9 candidate. Copied here for easier digestion:

arrays ``` improvement confidence p.value arrays\\var-int.js n=25 type="Array" 2.12 % *** 1.911996e-11 arrays\\var-int.js n=25 type="Buffer" -1.39 % *** 2.953185e-13 arrays\\var-int.js n=25 type="Float32Array" 1.36 % *** 4.482114e-21 arrays\\var-int.js n=25 type="Float64Array" -1.29 % *** 3.712094e-13 arrays\\var-int.js n=25 type="Int16Array" -1.71 % *** 3.185373e-15 arrays\\var-int.js n=25 type="Int32Array" -0.84 % *** 3.184537e-04 arrays\\var-int.js n=25 type="Int8Array" -1.43 % *** 2.081429e-16 arrays\\var-int.js n=25 type="Uint16Array" -1.61 % *** 1.591048e-17 arrays\\var-int.js n=25 type="Uint32Array" -0.51 % * 4.560219e-02 arrays\\var-int.js n=25 type="Uint8Array" -1.42 % *** 3.315598e-35 arrays\\zero-float.js n=25 type="Array" -0.29 % * 2.067735e-02 arrays\\zero-float.js n=25 type="Buffer" 0.81 % *** 1.432181e-14 arrays\\zero-float.js n=25 type="Float32Array" 10.16 % *** 1.887618e-43 arrays\\zero-float.js n=25 type="Float64Array" 0.37 % ** 1.180476e-03 arrays\\zero-float.js n=25 type="Int16Array" -1.19 % *** 7.951452e-28 arrays\\zero-float.js n=25 type="Int32Array" -6.52 % *** 1.214743e-42 arrays\\zero-float.js n=25 type="Int8Array" -17.88 % *** 7.204014e-81 arrays\\zero-float.js n=25 type="Uint16Array" -1.16 % *** 2.603611e-21 arrays\\zero-float.js n=25 type="Uint32Array" -6.40 % *** 5.803861e-43 arrays\\zero-float.js n=25 type="Uint8Array" -17.86 % *** 7.705079e-84 arrays\\zero-int.js n=25 type="Array" -0.43 % * 3.411995e-02 arrays\\zero-int.js n=25 type="Buffer" 0.93 % *** 3.097691e-12 arrays\\zero-int.js n=25 type="Float32Array" 10.41 % *** 3.242834e-58 arrays\\zero-int.js n=25 type="Float64Array" 0.61 % ** 6.996484e-03 arrays\\zero-int.js n=25 type="Int16Array" -1.18 % *** 7.198962e-17 arrays\\zero-int.js n=25 type="Int32Array" -6.24 % *** 2.192567e-42 arrays\\zero-int.js n=25 type="Int8Array" -17.80 % *** 4.249127e-61 arrays\\zero-int.js n=25 type="Uint16Array" -1.04 % *** 1.051799e-17 arrays\\zero-int.js n=25 type="Uint32Array" -6.41 % *** 7.414706e-53 arrays\\zero-int.js n=25 type="Uint8Array" -17.98 % *** 6.231374e-72 ```
arrays ("fixed" version by @targos) ``` improvement confidence p.value arrays/var-int.js n=25 type="Array" -1.05 % 8.210770e-01 arrays/var-int.js n=25 type="Buffer" -1.54 % 7.566834e-02 arrays/var-int.js n=25 type="Float32Array" 4.37 % 2.336688e-01 arrays/var-int.js n=25 type="Float64Array" 4.08 % 3.362891e-01 arrays/var-int.js n=25 type="Int16Array" -0.05 % 9.828921e-01 arrays/var-int.js n=25 type="Int32Array" -0.33 % 9.339843e-01 arrays/var-int.js n=25 type="Int8Array" -1.18 % 2.395664e-01 arrays/var-int.js n=25 type="Uint16Array" -0.40 % 8.660353e-01 arrays/var-int.js n=25 type="Uint32Array" -0.03 % 9.929733e-01 arrays/var-int.js n=25 type="Uint8Array" -1.43 % 1.526402e-01 arrays/zero-float.js n=25 type="Array" -1.17 % 8.379417e-01 arrays/zero-float.js n=25 type="Buffer" 9.29 % *** 5.629907e-07 arrays/zero-float.js n=25 type="Float32Array" 18.19 % *** 9.789400e-05 arrays/zero-float.js n=25 type="Float64Array" -0.48 % 9.050489e-01 arrays/zero-float.js n=25 type="Int16Array" 9.51 % ** 2.217754e-03 arrays/zero-float.js n=25 type="Int32Array" 17.43 % ** 1.694204e-03 arrays/zero-float.js n=25 type="Int8Array" 10.55 % *** 4.225859e-08 arrays/zero-float.js n=25 type="Uint16Array" 15.36 % *** 5.441519e-06 arrays/zero-float.js n=25 type="Uint32Array" 12.27 % ** 5.170996e-03 arrays/zero-float.js n=25 type="Uint8Array" 10.37 % *** 4.785524e-09 arrays/zero-int.js n=25 type="Array" -0.25 % 9.488216e-01 arrays/zero-int.js n=25 type="Buffer" 9.42 % *** 3.878194e-09 arrays/zero-int.js n=25 type="Float32Array" 18.75 % *** 6.911246e-05 arrays/zero-int.js n=25 type="Float64Array" -0.60 % 8.775090e-01 arrays/zero-int.js n=25 type="Int16Array" 11.43 % *** 4.247462e-07 arrays/zero-int.js n=25 type="Int32Array" 10.80 % *** 1.130166e-05 arrays/zero-int.js n=25 type="Int8Array" 9.77 % *** 1.961177e-09 arrays/zero-int.js n=25 type="Uint16Array" 8.71 % *** 3.570013e-04 arrays/zero-int.js n=25 type="Uint32Array" 11.22 % * 1.067604e-02 arrays/zero-int.js n=25 type="Uint8Array" 11.26 % *** 1.952135e-13 ```
assert ``` improvement confidence p.value assert\\deepequal-buffer.js method="nonstrict" len=100 n=1000 6.08 % *** 2.240694e-16 assert\\deepequal-buffer.js method="strict" len=100 n=1000 6.36 % *** 1.715121e-08 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="array" 11.16 % *** 3.089537e-20 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="boolean" 11.65 % *** 6.319150e-35 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="new-array" 11.43 % *** 1.019362e-28 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="null" 11.81 % *** 6.516888e-28 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="number" 10.07 % *** 3.636875e-23 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="object" 11.48 % *** 2.818413e-35 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="string" 11.38 % *** 8.847026e-29 assert\\deepequal-prims-and-objs-big-array.js method="nonstrict" len=100000 n=25 prim="undefined" 11.83 % *** 2.848567e-29 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="array" 11.18 % *** 1.020906e-28 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="boolean" 10.51 % *** 5.346165e-17 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="new-array" 11.35 % *** 6.250137e-27 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="null" 10.45 % *** 2.073088e-24 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="number" 10.37 % *** 1.018234e-15 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="object" 10.44 % *** 3.487968e-24 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="string" 11.79 % *** 1.710809e-38 assert\\deepequal-prims-and-objs-big-array.js method="strict" len=100000 n=25 prim="undefined" 10.91 % *** 3.133955e-27 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="array" 39.25 % *** 2.220953e-63 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="boolean" 39.48 % *** 3.117618e-82 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="new-array" 40.43 % *** 1.118514e-73 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="null" 39.43 % *** 6.743661e-77 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="number" 36.70 % *** 8.813610e-64 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="object" 40.04 % *** 2.289447e-64 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="string" 39.03 % *** 1.345610e-76 assert\\deepequal-prims-and-objs-big-loop.js method="nonstrict" n=1000000 prim="undefined" 39.12 % *** 2.970695e-76 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="array" 36.64 % *** 3.348739e-60 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="boolean" 33.43 % *** 1.410337e-65 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="new-array" 35.21 % *** 6.250969e-64 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="null" 33.86 % *** 1.815821e-64 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="number" 32.49 % *** 2.435150e-57 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="object" 36.99 % *** 3.538131e-46 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="string" 33.83 % *** 2.264266e-56 assert\\deepequal-prims-and-objs-big-loop.js method="strict" n=1000000 prim="undefined" 34.27 % *** 2.675520e-61 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Float32Array" -11.66 % *** 7.849993e-27 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Float64Array" -11.36 % *** 3.903625e-29 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Int16Array" 8.10 % *** 1.298645e-16 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Int32Array" 6.88 % *** 4.351738e-15 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Int8Array" 10.21 % *** 3.566406e-21 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Uint16Array" 6.94 % *** 6.770045e-14 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Uint32Array" 7.38 % *** 1.083080e-12 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Uint8Array" 7.85 % *** 5.187461e-18 assert\\deepequal-typedarrays.js len=1000000 method="nonstrict" n=1 type="Uint8ClampedArray" 8.13 % *** 7.616631e-16 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Float32Array" -11.03 % *** 6.610454e-66 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Float64Array" -11.06 % *** 2.551550e-46 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Int16Array" 0.60 % 5.300335e-01 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Int32Array" 0.09 % 8.860152e-01 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Int8Array" 5.09 % *** 2.161384e-04 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Uint16Array" 3.97 % ** 2.187538e-03 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Uint32Array" 0.90 % 4.287213e-01 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Uint8Array" 1.67 % 9.340617e-02 assert\\deepequal-typedarrays.js len=1000000 method="strict" n=1 type="Uint8ClampedArray" 3.99 % *** 9.655741e-04 ```
buffers ``` improvement confidence p.value buffers\\buffer-base64-decode.js n=32 -0.03 % 6.813796e-01 buffers\\buffer-base64-encode.js n=32 len=67108864 0.10 % 7.395115e-02 buffers\\buffer-bytelength.js n=5000000 len=1 encoding="base64" 16.14 % *** 5.629742e-46 buffers\\buffer-bytelength.js n=5000000 len=1 encoding="utf8" -36.00 % *** 2.712131e-60 buffers\\buffer-bytelength.js n=5000000 len=16 encoding="base64" 17.67 % *** 8.234877e-53 buffers\\buffer-bytelength.js n=5000000 len=16 encoding="utf8" -9.00 % *** 6.554314e-47 buffers\\buffer-bytelength.js n=5000000 len=2 encoding="base64" 14.62 % *** 1.496880e-30 buffers\\buffer-bytelength.js n=5000000 len=2 encoding="utf8" -27.22 % *** 4.940651e-70 buffers\\buffer-bytelength.js n=5000000 len=256 encoding="base64" 15.63 % *** 5.408900e-35 buffers\\buffer-bytelength.js n=5000000 len=256 encoding="utf8" -1.68 % *** 1.306409e-05 buffers\\buffer-bytelength.js n=5000000 len=4 encoding="base64" 17.38 % *** 8.353420e-48 buffers\\buffer-bytelength.js n=5000000 len=4 encoding="utf8" -23.14 % *** 2.336540e-62 buffers\\buffer-bytelength.js n=5000000 len=64 encoding="base64" 17.70 % *** 9.030145e-49 buffers\\buffer-bytelength.js n=5000000 len=64 encoding="utf8" -3.25 % *** 2.280305e-12 buffers\\buffer-compare-instance-method.js millions=1 args=1 size=1024 -11.50 % *** 2.000140e-17 buffers\\buffer-compare-instance-method.js millions=1 args=1 size=16 -12.12 % *** 2.153111e-25 buffers\\buffer-compare-instance-method.js millions=1 args=1 size=16386 2.15 % 3.759710e-01 buffers\\buffer-compare-instance-method.js millions=1 args=1 size=4096 -11.47 % *** 1.230915e-05 buffers\\buffer-compare-instance-method.js millions=1 args=1 size=512 -10.09 % *** 3.727958e-19 buffers\\buffer-compare-instance-method.js millions=1 args=2 size=1024 -19.04 % *** 7.673003e-27 buffers\\buffer-compare-instance-method.js millions=1 args=2 size=16 -21.40 % *** 3.935922e-62 buffers\\buffer-compare-instance-method.js millions=1 args=2 size=16386 -2.74 % 1.174619e-01 buffers\\buffer-compare-instance-method.js millions=1 args=2 size=4096 -15.96 % *** 7.638449e-11 buffers\\buffer-compare-instance-method.js millions=1 args=2 size=512 -19.64 % *** 5.566149e-30 buffers\\buffer-compare-instance-method.js millions=1 args=3 size=1024 -16.32 % *** 9.753637e-24 buffers\\buffer-compare-instance-method.js millions=1 args=3 size=16 -19.00 % *** 2.905866e-60 buffers\\buffer-compare-instance-method.js millions=1 args=3 size=16386 -3.50 % *** 3.463127e-04 buffers\\buffer-compare-instance-method.js millions=1 args=3 size=4096 -15.93 % *** 6.136367e-12 buffers\\buffer-compare-instance-method.js millions=1 args=3 size=512 -17.67 % *** 2.211209e-33 buffers\\buffer-compare-instance-method.js millions=1 args=4 size=1024 -17.24 % *** 3.824330e-29 buffers\\buffer-compare-instance-method.js millions=1 args=4 size=16 -19.58 % *** 1.338838e-38 buffers\\buffer-compare-instance-method.js millions=1 args=4 size=16386 -3.50 % *** 2.668278e-06 buffers\\buffer-compare-instance-method.js millions=1 args=4 size=4096 -15.32 % *** 4.822259e-11 buffers\\buffer-compare-instance-method.js millions=1 args=4 size=512 -16.30 % *** 3.251165e-25 buffers\\buffer-compare-instance-method.js millions=1 args=5 size=1024 -0.20 % 8.718793e-01 buffers\\buffer-compare-instance-method.js millions=1 args=5 size=16 -0.35 % 3.508750e-01 buffers\\buffer-compare-instance-method.js millions=1 args=5 size=16386 3.04 % ** 1.167276e-03 buffers\\buffer-compare-instance-method.js millions=1 args=5 size=4096 -4.48 % * 3.204543e-02 buffers\\buffer-compare-instance-method.js millions=1 args=5 size=512 1.06 % 8.748816e-02 buffers\\buffer-compare-offset.js millions=1 size=1024 method="offset" -3.03 % *** 1.757880e-11 buffers\\buffer-compare-offset.js millions=1 size=1024 method="slice" 7.19 % *** 9.960328e-16 buffers\\buffer-compare-offset.js millions=1 size=16 method="offset" -3.49 % *** 1.237199e-11 buffers\\buffer-compare-offset.js millions=1 size=16 method="slice" 7.24 % *** 1.006812e-19 buffers\\buffer-compare-offset.js millions=1 size=16386 method="offset" -3.00 % *** 5.300663e-09 buffers\\buffer-compare-offset.js millions=1 size=16386 method="slice" 7.22 % *** 6.424469e-16 buffers\\buffer-compare-offset.js millions=1 size=4096 method="offset" -3.75 % *** 2.294207e-14 buffers\\buffer-compare-offset.js millions=1 size=4096 method="slice" 7.18 % *** 3.934175e-20 buffers\\buffer-compare-offset.js millions=1 size=512 method="offset" -3.34 % *** 2.742405e-11 buffers\\buffer-compare-offset.js millions=1 size=512 method="slice" 7.59 % *** 8.893416e-20 buffers\\buffer-compare.js millions=1 size=1024 -21.69 % *** 2.710130e-27 buffers\\buffer-compare.js millions=1 size=16 -27.15 % *** 4.754943e-54 buffers\\buffer-compare.js millions=1 size=16386 -5.12 % ** 1.333052e-03 buffers\\buffer-compare.js millions=1 size=4096 -16.47 % *** 2.029561e-11 buffers\\buffer-compare.js millions=1 size=512 -23.08 % *** 9.287436e-34 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=1 pieces=1 -4.73 % *** 7.982186e-07 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=1 pieces=16 -26.40 % *** 4.427981e-42 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=1 pieces=4 -19.26 % *** 1.195433e-37 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=16 pieces=1 -9.86 % *** 9.593113e-24 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=16 pieces=16 -24.97 % *** 3.166334e-28 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=16 pieces=4 -21.01 % *** 2.224996e-52 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=256 pieces=1 -6.38 % *** 4.025680e-17 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=256 pieces=16 -12.39 % *** 1.076091e-51 buffers\\buffer-concat.js n=1024 withTotalLength=0 pieceSize=256 pieces=4 -13.81 % *** 2.545945e-52 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=1 pieces=1 -3.94 % *** 4.046170e-11 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=1 pieces=16 -29.76 % *** 1.779827e-50 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=1 pieces=4 -19.35 % *** 1.488346e-44 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=16 pieces=1 -12.40 % *** 2.748948e-26 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=16 pieces=16 -30.48 % *** 5.782960e-53 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=16 pieces=4 -22.38 % *** 2.518032e-47 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=256 pieces=1 -7.67 % *** 1.012370e-17 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=256 pieces=16 -13.33 % *** 6.172313e-47 buffers\\buffer-concat.js n=1024 withTotalLength=1 pieceSize=256 pieces=4 -12.97 % *** 1.221396e-50 buffers\\buffer-creation.js n=1024 len=10 type="buffer()" -5.87 % *** 9.479277e-09 buffers\\buffer-creation.js n=1024 len=10 type="fast-alloc-fill" 17.73 % *** 7.279321e-26 buffers\\buffer-creation.js n=1024 len=10 type="fast-alloc" -7.55 % *** 2.297406e-13 buffers\\buffer-creation.js n=1024 len=10 type="fast-allocUnsafe" -10.28 % *** 7.217664e-17 buffers\\buffer-creation.js n=1024 len=10 type="slow-allocUnsafe" 14.11 % *** 3.181184e-20 buffers\\buffer-creation.js n=1024 len=10 type="slow" 13.62 % *** 1.207137e-22 buffers\\buffer-creation.js n=1024 len=1024 type="buffer()" -3.41 % ** 1.440904e-03 buffers\\buffer-creation.js n=1024 len=1024 type="fast-alloc-fill" 9.64 % *** 1.272331e-12 buffers\\buffer-creation.js n=1024 len=1024 type="fast-alloc" 2.22 % * 3.739922e-02 buffers\\buffer-creation.js n=1024 len=1024 type="fast-allocUnsafe" -1.65 % 8.510120e-02 buffers\\buffer-creation.js n=1024 len=1024 type="slow-allocUnsafe" 10.84 % *** 2.302591e-14 buffers\\buffer-creation.js n=1024 len=1024 type="slow" 11.07 % *** 5.350467e-17 buffers\\buffer-creation.js n=1024 len=2048 type="buffer()" -1.89 % 7.896093e-02 buffers\\buffer-creation.js n=1024 len=2048 type="fast-alloc-fill" 5.82 % *** 1.278769e-06 buffers\\buffer-creation.js n=1024 len=2048 type="fast-alloc" 0.56 % 6.263182e-01 buffers\\buffer-creation.js n=1024 len=2048 type="fast-allocUnsafe" -0.13 % 8.992751e-01 buffers\\buffer-creation.js n=1024 len=2048 type="slow-allocUnsafe" 7.31 % *** 4.140525e-09 buffers\\buffer-creation.js n=1024 len=2048 type="slow" 7.26 % *** 1.368239e-08 buffers\\buffer-creation.js n=1024 len=4096 type="buffer()" 6.40 % *** 1.419849e-07 buffers\\buffer-creation.js n=1024 len=4096 type="fast-alloc-fill" 3.58 % ** 4.131086e-03 buffers\\buffer-creation.js n=1024 len=4096 type="fast-alloc" 0.23 % 8.587182e-01 buffers\\buffer-creation.js n=1024 len=4096 type="fast-allocUnsafe" 5.57 % *** 1.204951e-04 buffers\\buffer-creation.js n=1024 len=4096 type="slow-allocUnsafe" 4.85 % *** 3.717312e-05 buffers\\buffer-creation.js n=1024 len=4096 type="slow" 5.49 % *** 2.288046e-06 buffers\\buffer-creation.js n=1024 len=8192 type="buffer()" 7.39 % *** 1.701336e-07 buffers\\buffer-creation.js n=1024 len=8192 type="fast-alloc-fill" 4.18 % ** 2.611444e-03 buffers\\buffer-creation.js n=1024 len=8192 type="fast-alloc" 0.35 % 7.998885e-01 buffers\\buffer-creation.js n=1024 len=8192 type="fast-allocUnsafe" 7.71 % *** 2.536921e-08 buffers\\buffer-creation.js n=1024 len=8192 type="slow-allocUnsafe" 5.35 % *** 4.558921e-05 buffers\\buffer-creation.js n=1024 len=8192 type="slow" 4.37 % *** 6.654867e-04 buffers\\buffer-from.js n=1024 len=10 source="array" -0.31 % 5.470660e-01 buffers\\buffer-from.js n=1024 len=10 source="arraybuffer-middle" 30.70 % *** 6.190845e-54 buffers\\buffer-from.js n=1024 len=10 source="arraybuffer" -3.56 % *** 1.791732e-15 buffers\\buffer-from.js n=1024 len=10 source="buffer" -15.69 % *** 2.672736e-35 buffers\\buffer-from.js n=1024 len=10 source="object" 11.53 % *** 7.237769e-34 buffers\\buffer-from.js n=1024 len=10 source="string-base64" -9.66 % *** 1.494303e-18 buffers\\buffer-from.js n=1024 len=10 source="string" -23.06 % *** 9.883857e-39 buffers\\buffer-from.js n=1024 len=10 source="uint8array" -18.37 % *** 7.316612e-44 buffers\\buffer-from.js n=1024 len=2048 source="array" -10.80 % *** 1.411818e-67 buffers\\buffer-from.js n=1024 len=2048 source="arraybuffer-middle" 31.86 % *** 5.733511e-32 buffers\\buffer-from.js n=1024 len=2048 source="arraybuffer" -3.97 % *** 3.726409e-18 buffers\\buffer-from.js n=1024 len=2048 source="buffer" -3.65 % *** 4.177849e-30 buffers\\buffer-from.js n=1024 len=2048 source="object" 11.36 % *** 2.380623e-26 buffers\\buffer-from.js n=1024 len=2048 source="string-base64" -1.02 % *** 1.519490e-12 buffers\\buffer-from.js n=1024 len=2048 source="string" -3.18 % *** 1.079311e-24 buffers\\buffer-from.js n=1024 len=2048 source="uint8array" -3.01 % *** 1.284177e-16 buffers\\buffer-hex.js n=10000000 len=0 73.05 % *** 5.082105e-49 buffers\\buffer-hex.js n=10000000 len=1 -3.98 % *** 2.925840e-05 buffers\\buffer-hex.js n=10000000 len=1024 0.60 % *** 5.419991e-04 buffers\\buffer-hex.js n=10000000 len=64 2.13 % *** 8.823847e-05 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="--l" -0.35 % 7.264494e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="@" -2.20 % 8.007837e-02 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search=" to the Caterpillar" -0.98 % 3.668637e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="10x" -4.28 % *** 7.829767e-05 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="aaaaaaaaaaaaaaaaa" -0.42 % 6.726551e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="Alice" -17.45 % *** 9.162873e-22 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="among mad people" -0.63 % 4.632337e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="found it very" -0.57 % 5.543621e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="Gryphon" -0.71 % 4.706095e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="neighbouring pool" -1.05 % 2.966895e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="Ou est ma chatte?" -0.84 % 3.687903e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="Panther" -1.12 % 2.863537e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="Soo--oop" -0.49 % 6.841558e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="SQ" -0.03 % 9.784193e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="binary" search="venture to go near the house till she had brought herself down to" -0.72 % 4.944216e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="--l" -0.07 % 9.409791e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="@" -0.69 % 5.444296e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search=" to the Caterpillar" -0.71 % 4.911884e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="10x" -1.87 % 9.761129e-02 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="aaaaaaaaaaaaaaaaa" -0.74 % 4.598899e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="Alice" -13.47 % *** 3.310372e-09 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="among mad people" -1.03 % 2.974805e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="found it very" -0.65 % 4.837249e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="Gryphon" -0.79 % 4.449877e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="neighbouring pool" -0.32 % 7.452157e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="Ou est ma chatte?" -0.99 % 2.792177e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="Panther" -1.09 % 2.706123e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="Soo--oop" -0.65 % 5.341912e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="SQ" 0.48 % 6.780610e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="ucs2" search="venture to go near the house till she had brought herself down to" -0.60 % 5.555316e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="--l" -0.20 % 8.426501e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="@" -2.61 % * 3.890256e-02 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search=" to the Caterpillar" -0.68 % 5.012658e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="10x" -3.63 % ** 6.658883e-03 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="aaaaaaaaaaaaaaaaa" -0.74 % 4.829868e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="Alice" -22.10 % *** 1.089377e-24 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="among mad people" -0.79 % 4.160996e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="found it very" -0.60 % 5.340795e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="Gryphon" -0.59 % 5.592168e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="neighbouring pool" -0.90 % 3.061416e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="Ou est ma chatte?" -1.39 % 1.531039e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="Panther" -0.95 % 2.903631e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="Soo--oop" -0.57 % 5.153379e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="SQ" 0.15 % 9.035586e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="undefined" search="venture to go near the house till she had brought herself down to" -1.08 % 3.027459e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="--l" -0.21 % 8.410248e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="@" -2.11 % 1.269637e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search=" to the Caterpillar" -0.53 % 6.434224e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="10x" -4.32 % *** 1.255939e-04 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="aaaaaaaaaaaaaaaaa" -0.80 % 4.638854e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="Alice" -18.01 % *** 2.045080e-19 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="among mad people" -0.79 % 3.986172e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="found it very" -0.51 % 5.729769e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="Gryphon" -0.81 % 4.333457e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="neighbouring pool" -0.52 % 6.211223e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="Ou est ma chatte?" -0.47 % 6.280965e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="Panther" -1.07 % 2.578412e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="Soo--oop" -1.01 % 2.702615e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="SQ" 0.07 % 9.532958e-01 buffers\\buffer-indexof.js iter=1 type="buffer" encoding="utf8" search="venture to go near the house till she had brought herself down to" -0.88 % 3.541852e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="--l" -0.45 % 6.463735e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="@" -1.57 % 1.700239e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search=" to the Caterpillar" -1.20 % 2.721628e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="10x" -2.84 % * 2.053370e-02 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="aaaaaaaaaaaaaaaaa" -0.86 % 4.135523e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="Alice" -11.09 % *** 1.530140e-09 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="among mad people" -0.96 % 3.569128e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="found it very" -0.84 % 3.904320e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="Gryphon" -0.92 % 3.635840e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="neighbouring pool" -0.88 % 3.300754e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="Ou est ma chatte?" -0.78 % 4.058020e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="Panther" -0.97 % 3.600589e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="Soo--oop" -0.58 % 5.938500e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="SQ" 0.34 % 8.043807e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="binary" search="venture to go near the house till she had brought herself down to" -0.46 % 6.630097e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="--l" -0.04 % 9.704136e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="@" 2.29 % 7.465145e-02 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search=" to the Caterpillar" -0.37 % 7.305530e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="10x" 2.51 % * 4.197132e-02 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="aaaaaaaaaaaaaaaaa" -0.20 % 8.397360e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="Alice" -4.74 % *** 9.216821e-04 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="among mad people" -0.27 % 7.644037e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="found it very" -0.52 % 6.189075e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="Gryphon" -0.33 % 7.407495e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="neighbouring pool" -0.11 % 9.145351e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="Ou est ma chatte?" 0.89 % 3.138983e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="Panther" -0.85 % 3.848009e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="Soo--oop" -0.42 % 7.097964e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="SQ" 0.86 % 4.627404e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="ucs2" search="venture to go near the house till she had brought herself down to" 0.31 % 7.633400e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="--l" -0.15 % 8.893093e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="@" -2.89 % ** 2.437993e-03 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search=" to the Caterpillar" -0.90 % 3.905602e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="10x" -4.82 % *** 1.543522e-06 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="aaaaaaaaaaaaaaaaa" -0.80 % 4.418717e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="Alice" -17.79 % *** 6.256761e-20 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="among mad people" -1.25 % 2.014205e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="found it very" -0.80 % 3.713493e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="Gryphon" -0.34 % 7.258243e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="neighbouring pool" -0.84 % 3.322506e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="Ou est ma chatte?" -0.87 % 2.784203e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="Panther" -0.55 % 6.258945e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="Soo--oop" -0.72 % 3.835439e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="SQ" -0.12 % 9.215902e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="undefined" search="venture to go near the house till she had brought herself down to" -1.07 % 3.141827e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="--l" 0.01 % 9.939332e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="@" 0.30 % 7.906463e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search=" to the Caterpillar" -0.31 % 7.695421e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="10x" 0.16 % 9.135554e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="aaaaaaaaaaaaaaaaa" -0.64 % 5.492043e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="Alice" -2.21 % 1.540648e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="among mad people" -0.83 % 4.043682e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="found it very" -0.40 % 6.604813e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="Gryphon" -0.70 % 4.947166e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="neighbouring pool" -0.42 % 6.442356e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="Ou est ma chatte?" 0.18 % 8.669848e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="Panther" -0.91 % 3.515080e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="Soo--oop" -0.87 % 3.377439e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="SQ" 0.40 % 7.395111e-01 buffers\\buffer-indexof.js iter=1 type="string" encoding="utf8" search="venture to go near the house till she had brought herself down to" -0.08 % 9.333668e-01 buffers\\buffer-iterate.js n=1000 method="for" type="fast" size=1024 -38.66 % *** 4.488089e-44 buffers\\buffer-iterate.js n=1000 method="for" type="fast" size=16 -40.32 % *** 4.545685e-56 buffers\\buffer-iterate.js n=1000 method="for" type="fast" size=16386 -8.85 % *** 9.406173e-57 buffers\\buffer-iterate.js n=1000 method="for" type="fast" size=4096 -11.31 % *** 5.776087e-48 buffers\\buffer-iterate.js n=1000 method="for" type="fast" size=512 -46.63 % *** 5.050247e-35 buffers\\buffer-iterate.js n=1000 method="for" type="slow" size=1024 -38.26 % *** 1.155162e-38 buffers\\buffer-iterate.js n=1000 method="for" type="slow" size=16 -39.08 % *** 6.417078e-35 buffers\\buffer-iterate.js n=1000 method="for" type="slow" size=16386 -8.78 % *** 3.255136e-60 buffers\\buffer-iterate.js n=1000 method="for" type="slow" size=4096 -11.64 % *** 5.457078e-45 buffers\\buffer-iterate.js n=1000 method="for" type="slow" size=512 -47.29 % *** 2.690997e-46 buffers\\buffer-iterate.js n=1000 method="forOf" type="fast" size=1024 110.71 % *** 1.601002e-69 buffers\\buffer-iterate.js n=1000 method="forOf" type="fast" size=16 -3.08 % 3.674673e-01 buffers\\buffer-iterate.js n=1000 method="forOf" type="fast" size=16386 244.56 % *** 1.304915e-65 buffers\\buffer-iterate.js n=1000 method="forOf" type="fast" size=4096 173.75 % *** 2.706117e-61 buffers\\buffer-iterate.js n=1000 method="forOf" type="fast" size=512 65.27 % *** 8.025107e-71 buffers\\buffer-iterate.js n=1000 method="forOf" type="slow" size=1024 111.63 % *** 9.453410e-75 buffers\\buffer-iterate.js n=1000 method="forOf" type="slow" size=16 -4.00 % *** 1.470991e-08 buffers\\buffer-iterate.js n=1000 method="forOf" type="slow" size=16386 245.29 % *** 1.543723e-64 buffers\\buffer-iterate.js n=1000 method="forOf" type="slow" size=4096 177.26 % *** 3.199303e-89 buffers\\buffer-iterate.js n=1000 method="forOf" type="slow" size=512 64.54 % *** 4.567671e-53 buffers\\buffer-iterate.js n=1000 method="iterator" type="fast" size=1024 11.57 % *** 1.967961e-48 buffers\\buffer-iterate.js n=1000 method="iterator" type="fast" size=16 -49.67 % *** 2.815984e-51 buffers\\buffer-iterate.js n=1000 method="iterator" type="fast" size=16386 40.40 % *** 4.147217e-81 buffers\\buffer-iterate.js n=1000 method="iterator" type="fast" size=4096 30.28 % *** 6.559132e-69 buffers\\buffer-iterate.js n=1000 method="iterator" type="fast" size=512 -1.50 % *** 7.022152e-06 buffers\\buffer-iterate.js n=1000 method="iterator" type="slow" size=1024 12.50 % *** 3.389321e-48 buffers\\buffer-iterate.js n=1000 method="iterator" type="slow" size=16 -51.62 % *** 5.198335e-46 buffers\\buffer-iterate.js n=1000 method="iterator" type="slow" size=16386 40.45 % *** 8.650464e-81 buffers\\buffer-iterate.js n=1000 method="iterator" type="slow" size=4096 30.24 % *** 1.296496e-68 buffers\\buffer-iterate.js n=1000 method="iterator" type="slow" size=512 -0.92 % ** 1.131316e-03 buffers\\buffer-read.js millions=1 type="DoubleBE" buffer="fast" noAssert="false" -39.77 % *** 4.494981e-82 buffers\\buffer-read.js millions=1 type="DoubleBE" buffer="fast" noAssert="true" -40.36 % *** 9.270805e-83 buffers\\buffer-read.js millions=1 type="DoubleBE" buffer="slow" noAssert="false" -39.87 % *** 2.469591e-88 buffers\\buffer-read.js millions=1 type="DoubleBE" buffer="slow" noAssert="true" -39.95 % *** 1.905480e-78 buffers\\buffer-read.js millions=1 type="DoubleLE" buffer="fast" noAssert="false" -42.71 % *** 1.537101e-53 buffers\\buffer-read.js millions=1 type="DoubleLE" buffer="fast" noAssert="true" -41.59 % *** 5.188194e-50 buffers\\buffer-read.js millions=1 type="DoubleLE" buffer="slow" noAssert="false" -42.92 % *** 6.271103e-46 buffers\\buffer-read.js millions=1 type="DoubleLE" buffer="slow" noAssert="true" -40.60 % *** 6.360271e-46 buffers\\buffer-read.js millions=1 type="FloatBE" buffer="fast" noAssert="false" -36.68 % *** 9.102909e-73 buffers\\buffer-read.js millions=1 type="FloatBE" buffer="fast" noAssert="true" -37.52 % *** 4.027095e-77 buffers\\buffer-read.js millions=1 type="FloatBE" buffer="slow" noAssert="false" -36.55 % *** 1.428981e-66 buffers\\buffer-read.js millions=1 type="FloatBE" buffer="slow" noAssert="true" -37.41 % *** 2.018451e-76 buffers\\buffer-read.js millions=1 type="FloatLE" buffer="fast" noAssert="false" -38.29 % *** 4.356237e-53 buffers\\buffer-read.js millions=1 type="FloatLE" buffer="fast" noAssert="true" -40.63 % *** 5.012620e-81 buffers\\buffer-read.js millions=1 type="FloatLE" buffer="slow" noAssert="false" -38.80 % *** 3.198838e-55 buffers\\buffer-read.js millions=1 type="FloatLE" buffer="slow" noAssert="true" -40.26 % *** 7.326122e-70 buffers\\buffer-read.js millions=1 type="Int16BE" buffer="fast" noAssert="false" 19.06 % *** 1.403670e-30 buffers\\buffer-read.js millions=1 type="Int16BE" buffer="fast" noAssert="true" -27.04 % *** 2.933201e-43 buffers\\buffer-read.js millions=1 type="Int16BE" buffer="slow" noAssert="false" 18.64 % *** 1.137060e-36 buffers\\buffer-read.js millions=1 type="Int16BE" buffer="slow" noAssert="true" -27.24 % *** 1.160528e-32 buffers\\buffer-read.js millions=1 type="Int16LE" buffer="fast" noAssert="false" 19.66 % *** 1.784479e-29 buffers\\buffer-read.js millions=1 type="Int16LE" buffer="fast" noAssert="true" -27.80 % *** 1.643164e-42 buffers\\buffer-read.js millions=1 type="Int16LE" buffer="slow" noAssert="false" 18.40 % *** 7.945532e-36 buffers\\buffer-read.js millions=1 type="Int16LE" buffer="slow" noAssert="true" -26.02 % *** 4.235541e-26 buffers\\buffer-read.js millions=1 type="Int32BE" buffer="fast" noAssert="false" -1.19 % 3.034823e-01 buffers\\buffer-read.js millions=1 type="Int32BE" buffer="fast" noAssert="true" -47.40 % *** 1.243172e-43 buffers\\buffer-read.js millions=1 type="Int32BE" buffer="slow" noAssert="false" 0.81 % 2.872066e-01 buffers\\buffer-read.js millions=1 type="Int32BE" buffer="slow" noAssert="true" -47.13 % *** 9.286128e-28 buffers\\buffer-read.js millions=1 type="Int32LE" buffer="fast" noAssert="false" 2.62 % ** 6.505751e-03 buffers\\buffer-read.js millions=1 type="Int32LE" buffer="fast" noAssert="true" -42.77 % *** 9.960392e-42 buffers\\buffer-read.js millions=1 type="Int32LE" buffer="slow" noAssert="false" 2.59 % *** 3.431484e-05 buffers\\buffer-read.js millions=1 type="Int32LE" buffer="slow" noAssert="true" -42.23 % *** 2.721267e-36 buffers\\buffer-read.js millions=1 type="Int8" buffer="fast" noAssert="false" 14.11 % *** 1.021695e-36 buffers\\buffer-read.js millions=1 type="Int8" buffer="fast" noAssert="true" -26.83 % *** 1.598243e-41 buffers\\buffer-read.js millions=1 type="Int8" buffer="slow" noAssert="false" 13.58 % *** 4.622852e-34 buffers\\buffer-read.js millions=1 type="Int8" buffer="slow" noAssert="true" -26.74 % *** 3.749623e-44 buffers\\buffer-read.js millions=1 type="UInt16BE" buffer="fast" noAssert="false" 4.00 % *** 9.770175e-10 buffers\\buffer-read.js millions=1 type="UInt16BE" buffer="fast" noAssert="true" -43.99 % *** 2.389208e-53 buffers\\buffer-read.js millions=1 type="UInt16BE" buffer="slow" noAssert="false" 3.02 % *** 2.438014e-11 buffers\\buffer-read.js millions=1 type="UInt16BE" buffer="slow" noAssert="true" -43.48 % *** 1.778761e-52 buffers\\buffer-read.js millions=1 type="UInt16LE" buffer="fast" noAssert="false" 7.27 % *** 7.607707e-19 buffers\\buffer-read.js millions=1 type="UInt16LE" buffer="fast" noAssert="true" -37.75 % *** 1.282249e-42 buffers\\buffer-read.js millions=1 type="UInt16LE" buffer="slow" noAssert="false" 6.32 % *** 1.510428e-13 buffers\\buffer-read.js millions=1 type="UInt16LE" buffer="slow" noAssert="true" -39.37 % *** 1.188848e-49 buffers\\buffer-read.js millions=1 type="UInt32BE" buffer="fast" noAssert="false" -6.57 % *** 2.519559e-15 buffers\\buffer-read.js millions=1 type="UInt32BE" buffer="fast" noAssert="true" -50.93 % *** 1.031245e-44 buffers\\buffer-read.js millions=1 type="UInt32BE" buffer="slow" noAssert="false" -7.23 % *** 5.927445e-26 buffers\\buffer-read.js millions=1 type="UInt32BE" buffer="slow" noAssert="true" -51.02 % *** 4.138643e-51 buffers\\buffer-read.js millions=1 type="UInt32LE" buffer="fast" noAssert="false" -4.94 % *** 1.291956e-09 buffers\\buffer-read.js millions=1 type="UInt32LE" buffer="fast" noAssert="true" -49.31 % *** 2.610133e-49 buffers\\buffer-read.js millions=1 type="UInt32LE" buffer="slow" noAssert="false" -5.06 % *** 8.029210e-16 buffers\\buffer-read.js millions=1 type="UInt32LE" buffer="slow" noAssert="true" -48.99 % *** 3.672503e-40 buffers\\buffer-read.js millions=1 type="UInt8" buffer="fast" noAssert="false" -13.40 % *** 8.950667e-29 buffers\\buffer-read.js millions=1 type="UInt8" buffer="fast" noAssert="true" -54.61 % *** 4.233053e-39 buffers\\buffer-read.js millions=1 type="UInt8" buffer="slow" noAssert="false" -12.84 % *** 6.666907e-28 buffers\\buffer-read.js millions=1 type="UInt8" buffer="slow" noAssert="true" -54.34 % *** 2.847385e-36 buffers\\buffer-slice.js n=1024 type="fast" 18.66 % *** 4.017939e-23 buffers\\buffer-slice.js n=1024 type="slow" 18.22 % *** 5.380341e-28 buffers\\buffer-tojson.js len=0 n=10000 -29.94 % *** 2.279781e-35 buffers\\buffer-tojson.js len=10 n=10000 -50.51 % *** 4.138969e-30 buffers\\buffer-tojson.js len=256 n=10000 -6.61 % *** 1.909075e-12 buffers\\buffer-tojson.js len=4096 n=10000 0.61 % 3.305055e-01 buffers\\buffer-tostring.js n=10000000 len=0 arg="false" -45.06 % *** 1.052493e-64 buffers\\buffer-tostring.js n=10000000 len=0 arg="true" 141.33 % *** 2.570761e-49 buffers\\buffer-tostring.js n=10000000 len=1 arg="false" -29.80 % *** 1.295265e-36 buffers\\buffer-tostring.js n=10000000 len=1 arg="true" -23.91 % *** 5.613356e-50 buffers\\buffer-tostring.js n=10000000 len=1024 arg="false" -11.89 % *** 1.852139e-43 buffers\\buffer-tostring.js n=10000000 len=1024 arg="true" -7.67 % *** 1.280761e-22 buffers\\buffer-tostring.js n=10000000 len=64 arg="false" -32.36 % *** 3.080627e-63 buffers\\buffer-tostring.js n=10000000 len=64 arg="true" -23.21 % *** 1.418203e-37 buffers\\buffer-write.js millions=1 type="DoubleBE" buffer="fast" noAssert="false" -43.56 % *** 1.585645e-31 buffers\\buffer-write.js millions=1 type="DoubleBE" buffer="fast" noAssert="true" -44.91 % *** 3.569385e-44 buffers\\buffer-write.js millions=1 type="DoubleBE" buffer="slow" noAssert="false" -44.11 % *** 1.041960e-42 buffers\\buffer-write.js millions=1 type="DoubleBE" buffer="slow" noAssert="true" -43.94 % *** 1.257416e-34 buffers\\buffer-write.js millions=1 type="DoubleLE" buffer="fast" noAssert="false" -39.65 % *** 1.140142e-82 buffers\\buffer-write.js millions=1 type="DoubleLE" buffer="fast" noAssert="true" -42.72 % *** 1.151006e-80 buffers\\buffer-write.js millions=1 type="DoubleLE" buffer="slow" noAssert="false" -39.74 % *** 3.682974e-75 buffers\\buffer-write.js millions=1 type="DoubleLE" buffer="slow" noAssert="true" -42.39 % *** 1.113374e-74 buffers\\buffer-write.js millions=1 type="FloatBE" buffer="fast" noAssert="false" -41.31 % *** 8.648892e-40 buffers\\buffer-write.js millions=1 type="FloatBE" buffer="fast" noAssert="true" -41.94 % *** 1.885928e-37 buffers\\buffer-write.js millions=1 type="FloatBE" buffer="slow" noAssert="false" -40.38 % *** 6.572863e-39 buffers\\buffer-write.js millions=1 type="FloatBE" buffer="slow" noAssert="true" -44.10 % *** 7.293289e-41 buffers\\buffer-write.js millions=1 type="FloatLE" buffer="fast" noAssert="false" -40.11 % *** 1.285867e-38 buffers\\buffer-write.js millions=1 type="FloatLE" buffer="fast" noAssert="true" -41.97 % *** 3.338780e-27 buffers\\buffer-write.js millions=1 type="FloatLE" buffer="slow" noAssert="false" -40.85 % *** 1.234396e-37 buffers\\buffer-write.js millions=1 type="FloatLE" buffer="slow" noAssert="true" -42.77 % *** 8.299756e-37 buffers\\buffer-write.js millions=1 type="Int16BE" buffer="fast" noAssert="false" 12.51 % *** 1.082288e-32 buffers\\buffer-write.js millions=1 type="Int16BE" buffer="fast" noAssert="true" -38.73 % *** 3.306965e-39 buffers\\buffer-write.js millions=1 type="Int16BE" buffer="slow" noAssert="false" 12.64 % *** 5.858414e-26 buffers\\buffer-write.js millions=1 type="Int16BE" buffer="slow" noAssert="true" -38.80 % *** 2.644936e-46 buffers\\buffer-write.js millions=1 type="Int16LE" buffer="fast" noAssert="false" 13.20 % *** 3.046712e-36 buffers\\buffer-write.js millions=1 type="Int16LE" buffer="fast" noAssert="true" -42.88 % *** 2.418837e-43 buffers\\buffer-write.js millions=1 type="Int16LE" buffer="slow" noAssert="false" 13.35 % *** 5.381653e-33 buffers\\buffer-write.js millions=1 type="Int16LE" buffer="slow" noAssert="true" -43.64 % *** 2.124825e-56 buffers\\buffer-write.js millions=1 type="Int32BE" buffer="fast" noAssert="false" 0.68 % 1.443934e-01 buffers\\buffer-write.js millions=1 type="Int32BE" buffer="fast" noAssert="true" -39.90 % *** 7.142140e-40 buffers\\buffer-write.js millions=1 type="Int32BE" buffer="slow" noAssert="false" 1.64 % *** 2.493676e-06 buffers\\buffer-write.js millions=1 type="Int32BE" buffer="slow" noAssert="true" -40.22 % *** 5.057077e-47 buffers\\buffer-write.js millions=1 type="Int32LE" buffer="fast" noAssert="false" 2.51 % *** 4.209786e-08 buffers\\buffer-write.js millions=1 type="Int32LE" buffer="fast" noAssert="true" -44.77 % *** 7.731343e-32 buffers\\buffer-write.js millions=1 type="Int32LE" buffer="slow" noAssert="false" 1.90 % *** 6.013827e-09 buffers\\buffer-write.js millions=1 type="Int32LE" buffer="slow" noAssert="true" -44.69 % *** 1.473504e-38 buffers\\buffer-write.js millions=1 type="Int8" buffer="fast" noAssert="false" 8.96 % *** 1.390186e-25 buffers\\buffer-write.js millions=1 type="Int8" buffer="fast" noAssert="true" -43.46 % *** 6.151087e-60 buffers\\buffer-write.js millions=1 type="Int8" buffer="slow" noAssert="false" 8.77 % *** 3.912871e-31 buffers\\buffer-write.js millions=1 type="Int8" buffer="slow" noAssert="true" -42.49 % *** 4.625293e-20 buffers\\buffer-write.js millions=1 type="UInt16BE" buffer="fast" noAssert="false" 15.93 % *** 1.920343e-40 buffers\\buffer-write.js millions=1 type="UInt16BE" buffer="fast" noAssert="true" -37.95 % *** 2.985032e-28 buffers\\buffer-write.js millions=1 type="UInt16BE" buffer="slow" noAssert="false" 15.93 % *** 1.402500e-43 buffers\\buffer-write.js millions=1 type="UInt16BE" buffer="slow" noAssert="true" -38.79 % *** 1.025692e-57 buffers\\buffer-write.js millions=1 type="UInt16LE" buffer="fast" noAssert="false" 12.50 % *** 2.898478e-33 buffers\\buffer-write.js millions=1 type="UInt16LE" buffer="fast" noAssert="true" -43.70 % *** 2.854414e-55 buffers\\buffer-write.js millions=1 type="UInt16LE" buffer="slow" noAssert="false" 12.86 % *** 6.317302e-42 buffers\\buffer-write.js millions=1 type="UInt16LE" buffer="slow" noAssert="true" -43.15 % *** 4.572356e-42 buffers\\buffer-write.js millions=1 type="UInt32BE" buffer="fast" noAssert="false" 5.89 % *** 1.182524e-25 buffers\\buffer-write.js millions=1 type="UInt32BE" buffer="fast" noAssert="true" -40.05 % *** 1.608055e-52 buffers\\buffer-write.js millions=1 type="UInt32BE" buffer="slow" noAssert="false" 5.68 % *** 2.005348e-24 buffers\\buffer-write.js millions=1 type="UInt32BE" buffer="slow" noAssert="true" -40.09 % *** 2.130559e-44 buffers\\buffer-write.js millions=1 type="UInt32LE" buffer="fast" noAssert="false" 5.20 % *** 3.130693e-19 buffers\\buffer-write.js millions=1 type="UInt32LE" buffer="fast" noAssert="true" -40.95 % *** 4.726284e-60 buffers\\buffer-write.js millions=1 type="UInt32LE" buffer="slow" noAssert="false" 5.93 % *** 2.668763e-20 buffers\\buffer-write.js millions=1 type="UInt32LE" buffer="slow" noAssert="true" -40.30 % *** 1.091369e-32 buffers\\buffer-write.js millions=1 type="UInt8" buffer="fast" noAssert="false" 8.60 % *** 2.492144e-29 buffers\\buffer-write.js millions=1 type="UInt8" buffer="fast" noAssert="true" -41.73 % *** 1.405204e-31 buffers\\buffer-write.js millions=1 type="UInt8" buffer="slow" noAssert="false" 9.32 % *** 4.601417e-22 buffers\\buffer-write.js millions=1 type="UInt8" buffer="slow" noAssert="true" -42.55 % *** 2.019819e-31 buffers\\buffer_zero.js type="buffer" n=1024 2.44 % *** 3.511559e-04 buffers\\buffer_zero.js type="string" n=1024 8.90 % *** 1.325879e-13 buffers\\dataview-set.js millions=1 type="Float32BE" -4.65 % *** 1.682569e-11 buffers\\dataview-set.js millions=1 type="Float32LE" -6.15 % *** 1.081206e-21 buffers\\dataview-set.js millions=1 type="Float64BE" -6.72 % *** 5.129692e-21 buffers\\dataview-set.js millions=1 type="Float64LE" -7.83 % *** 4.473849e-17 buffers\\dataview-set.js millions=1 type="Int16BE" -4.64 % ** 1.451298e-03 buffers\\dataview-set.js millions=1 type="Int16LE" -3.09 % *** 4.174781e-04 buffers\\dataview-set.js millions=1 type="Int32BE" -3.69 % ** 1.222692e-03 buffers\\dataview-set.js millions=1 type="Int32LE" -5.41 % *** 6.345715e-07 buffers\\dataview-set.js millions=1 type="Int8" -6.33 % *** 1.863074e-07 buffers\\dataview-set.js millions=1 type="Uint16BE" -7.71 % *** 4.916663e-08 buffers\\dataview-set.js millions=1 type="Uint16LE" -9.33 % *** 2.014695e-15 buffers\\dataview-set.js millions=1 type="Uint32BE" 29.27 % *** 6.652924e-54 buffers\\dataview-set.js millions=1 type="Uint32LE" 33.39 % *** 8.781109e-55 buffers\\dataview-set.js millions=1 type="Uint8" -4.19 % *** 2.561106e-04 ```
buffer-swap.js with --set n=1e6 ``` improvement confidence p.value buffers\\buffer-swap.js n=1000000 len=1024 method="swap16" aligned="false" 0.36 % *** 6.076393e-18 buffers\\buffer-swap.js n=1000000 len=1024 method="swap16" aligned="true" 1.10 % *** 1.359542e-22 buffers\\buffer-swap.js n=1000000 len=1024 method="swap32" aligned="false" 0.07 % 1.796922e-01 buffers\\buffer-swap.js n=1000000 len=1024 method="swap32" aligned="true" 0.22 % * 1.744881e-02 buffers\\buffer-swap.js n=1000000 len=1024 method="swap64" aligned="false" 0.24 % *** 1.566726e-07 buffers\\buffer-swap.js n=1000000 len=1024 method="swap64" aligned="true" -0.04 % 7.858086e-01 buffers\\buffer-swap.js n=1000000 len=128 method="swap16" aligned="false" 1.96 % *** 2.119761e-08 buffers\\buffer-swap.js n=1000000 len=128 method="swap16" aligned="true" 3.60 % *** 8.102858e-24 buffers\\buffer-swap.js n=1000000 len=128 method="swap32" aligned="false" -25.83 % *** 2.334289e-88 buffers\\buffer-swap.js n=1000000 len=128 method="swap32" aligned="true" -28.18 % *** 9.633524e-92 buffers\\buffer-swap.js n=1000000 len=128 method="swap64" aligned="false" -32.50 % *** 2.203248e-71 buffers\\buffer-swap.js n=1000000 len=128 method="swap64" aligned="true" -29.72 % *** 5.921971e-96 buffers\\buffer-swap.js n=1000000 len=1536 method="swap16" aligned="false" 0.21 % *** 2.326170e-04 buffers\\buffer-swap.js n=1000000 len=1536 method="swap16" aligned="true" 0.92 % *** 2.883013e-20 buffers\\buffer-swap.js n=1000000 len=1536 method="swap32" aligned="false" 0.10 % *** 8.005634e-06 buffers\\buffer-swap.js n=1000000 len=1536 method="swap32" aligned="true" 0.14 % 7.896609e-02 buffers\\buffer-swap.js n=1000000 len=1536 method="swap64" aligned="false" 0.09 % 9.037307e-02 buffers\\buffer-swap.js n=1000000 len=1536 method="swap64" aligned="true" 0.21 % 3.514098e-01 buffers\\buffer-swap.js n=1000000 len=2056 method="swap16" aligned="false" 0.17 % *** 3.248787e-04 buffers\\buffer-swap.js n=1000000 len=2056 method="swap16" aligned="true" 0.55 % *** 1.625691e-10 buffers\\buffer-swap.js n=1000000 len=2056 method="swap32" aligned="false" 0.02 % 1.648908e-01 buffers\\buffer-swap.js n=1000000 len=2056 method="swap32" aligned="true" 0.13 % * 3.592004e-02 buffers\\buffer-swap.js n=1000000 len=2056 method="swap64" aligned="false" -0.08 % 1.680445e-01 buffers\\buffer-swap.js n=1000000 len=2056 method="swap64" aligned="true" 0.13 % 8.412957e-02 buffers\\buffer-swap.js n=1000000 len=256 method="swap16" aligned="false" 1.14 % *** 2.298617e-15 buffers\\buffer-swap.js n=1000000 len=256 method="swap16" aligned="true" 2.35 % *** 8.848386e-23 buffers\\buffer-swap.js n=1000000 len=256 method="swap32" aligned="false" 0.51 % * 2.855728e-02 buffers\\buffer-swap.js n=1000000 len=256 method="swap32" aligned="true" 0.31 % * 4.837458e-02 buffers\\buffer-swap.js n=1000000 len=256 method="swap64" aligned="false" 0.70 % *** 1.187119e-10 buffers\\buffer-swap.js n=1000000 len=256 method="swap64" aligned="true" 0.03 % 8.377633e-01 buffers\\buffer-swap.js n=1000000 len=4096 method="swap16" aligned="false" 0.03 % 2.168347e-01 buffers\\buffer-swap.js n=1000000 len=4096 method="swap16" aligned="true" 0.27 % *** 5.990335e-08 buffers\\buffer-swap.js n=1000000 len=4096 method="swap32" aligned="false" 0.03 % 3.267018e-01 buffers\\buffer-swap.js n=1000000 len=4096 method="swap32" aligned="true" -0.05 % 7.015377e-01 buffers\\buffer-swap.js n=1000000 len=4096 method="swap64" aligned="false" -0.23 % 1.504769e-01 buffers\\buffer-swap.js n=1000000 len=4096 method="swap64" aligned="true" -0.18 % 7.870197e-02 buffers\\buffer-swap.js n=1000000 len=512 method="swap16" aligned="false" 0.57 % *** 4.245723e-15 buffers\\buffer-swap.js n=1000000 len=512 method="swap16" aligned="true" 1.80 % *** 3.992138e-20 buffers\\buffer-swap.js n=1000000 len=512 method="swap32" aligned="false" 0.35 % *** 6.259493e-09 buffers\\buffer-swap.js n=1000000 len=512 method="swap32" aligned="true" 0.42 % ** 1.212643e-03 buffers\\buffer-swap.js n=1000000 len=512 method="swap64" aligned="false" 0.52 % *** 2.336598e-16 buffers\\buffer-swap.js n=1000000 len=512 method="swap64" aligned="true" -0.04 % 7.897691e-01 buffers\\buffer-swap.js n=1000000 len=64 method="swap16" aligned="false" -11.63 % *** 1.715831e-70 buffers\\buffer-swap.js n=1000000 len=64 method="swap16" aligned="true" -11.28 % *** 2.934296e-46 buffers\\buffer-swap.js n=1000000 len=64 method="swap32" aligned="false" -22.73 % *** 6.453671e-79 buffers\\buffer-swap.js n=1000000 len=64 method="swap32" aligned="true" -23.37 % *** 3.179763e-71 buffers\\buffer-swap.js n=1000000 len=64 method="swap64" aligned="false" -26.91 % *** 1.133643e-31 buffers\\buffer-swap.js n=1000000 len=64 method="swap64" aligned="true" -24.71 % *** 1.203672e-29 buffers\\buffer-swap.js n=1000000 len=768 method="swap16" aligned="false" 0.38 % *** 5.071203e-12 buffers\\buffer-swap.js n=1000000 len=768 method="swap16" aligned="true" 1.18 % *** 2.312994e-23 buffers\\buffer-swap.js n=1000000 len=768 method="swap32" aligned="false" 0.17 % ** 2.755085e-03 buffers\\buffer-swap.js n=1000000 len=768 method="swap32" aligned="true" 0.13 % 3.430058e-01 buffers\\buffer-swap.js n=1000000 len=768 method="swap64" aligned="false" 0.44 % *** 4.743284e-04 buffers\\buffer-swap.js n=1000000 len=768 method="swap64" aligned="true" -0.03 % 8.388090e-01 buffers\\buffer-swap.js n=1000000 len=8 method="swap16" aligned="false" 6.06 % *** 2.951182e-30 buffers\\buffer-swap.js n=1000000 len=8 method="swap16" aligned="true" 5.74 % *** 3.316930e-21 buffers\\buffer-swap.js n=1000000 len=8 method="swap32" aligned="false" 3.50 % *** 1.244331e-22 buffers\\buffer-swap.js n=1000000 len=8 method="swap32" aligned="true" 1.72 % *** 1.879290e-11 buffers\\buffer-swap.js n=1000000 len=8 method="swap64" aligned="false" 0.68 % * 3.477764e-02 buffers\\buffer-swap.js n=1000000 len=8 method="swap64" aligned="true" 0.10 % 8.185927e-01 buffers\\buffer-swap.js n=1000000 len=8192 method="swap16" aligned="false" 0.02 % 1.425613e-01 buffers\\buffer-swap.js n=1000000 len=8192 method="swap16" aligned="true" 0.18 % *** 1.916646e-08 buffers\\buffer-swap.js n=1000000 len=8192 method="swap32" aligned="false" -0.02 % 2.420096e-01 buffers\\buffer-swap.js n=1000000 len=8192 method="swap32" aligned="true" 0.11 % * 2.388254e-02 buffers\\buffer-swap.js n=1000000 len=8192 method="swap64" aligned="false" -0.17 % ** 3.838764e-03 buffers\\buffer-swap.js n=1000000 len=8192 method="swap64" aligned="true" 0.02 % 6.347701e-01 ```
child_process ``` improvement confidence p.value child_process\\child-process-exec-stdout.js dur=5 len=1024 -0.90 % 4.373815e-01 child_process\\child-process-exec-stdout.js dur=5 len=256 0.23 % 8.935467e-01 child_process\\child-process-exec-stdout.js dur=5 len=4096 0.62 % 6.591330e-01 child_process\\child-process-exec-stdout.js dur=5 len=64 -1.87 % 3.482599e-01 child_process\\child-process-params.js params=1 methodName="exec" n=1000 -4.63 % *** 5.123714e-11 child_process\\child-process-params.js params=1 methodName="execFile" n=1000 -3.92 % *** 2.644723e-12 child_process\\child-process-params.js params=1 methodName="execFileSync" n=1000 -0.28 % 7.107140e-01 child_process\\child-process-params.js params=1 methodName="execSync" n=1000 -0.21 % 4.051633e-01 child_process\\child-process-params.js params=1 methodName="spawn" n=1000 -4.01 % *** 1.536730e-14 child_process\\child-process-params.js params=1 methodName="spawnSync" n=1000 -0.22 % 7.796821e-01 child_process\\child-process-params.js params=2 methodName="exec" n=1000 -4.42 % *** 5.623094e-16 child_process\\child-process-params.js params=2 methodName="execFile" n=1000 -3.40 % *** 1.986012e-09 child_process\\child-process-params.js params=2 methodName="execFileSync" n=1000 0.07 % 9.104965e-01 child_process\\child-process-params.js params=2 methodName="execSync" n=1000 -0.09 % 4.823520e-01 child_process\\child-process-params.js params=2 methodName="spawn" n=1000 -3.98 % *** 7.050357e-13 child_process\\child-process-params.js params=2 methodName="spawnSync" n=1000 1.04 % 2.596032e-01 child_process\\child-process-params.js params=3 methodName="exec" n=1000 -5.15 % *** 4.912272e-15 child_process\\child-process-params.js params=3 methodName="execFile" n=1000 -4.78 % *** 2.814372e-17 child_process\\child-process-params.js params=3 methodName="execFileSync" n=1000 0.06 % 9.181210e-01 child_process\\child-process-params.js params=3 methodName="spawn" n=1000 -3.86 % *** 1.507486e-10 child_process\\child-process-params.js params=3 methodName="spawnSync" n=1000 1.02 % 2.644717e-01 child_process\\child-process-params.js params=4 methodName="execFile" n=1000 -3.90 % *** 7.927832e-17 child_process\\child-process-read-ipc.js dur=5 len=1024 -0.02 % 9.396622e-01 child_process\\child-process-read-ipc.js dur=5 len=1048576 1.03 % * 3.282735e-02 child_process\\child-process-read-ipc.js dur=5 len=16384 -0.27 % *** 5.423084e-04 child_process\\child-process-read-ipc.js dur=5 len=16777216 0.26 % 2.500390e-01 child_process\\child-process-read-ipc.js dur=5 len=256 -0.70 % *** 7.789173e-04 child_process\\child-process-read-ipc.js dur=5 len=4096 -0.21 % 9.370554e-02 child_process\\child-process-read-ipc.js dur=5 len=64 -0.68 % ** 2.257675e-03 child_process\\child-process-read-ipc.js dur=5 len=65536 0.91 % *** 3.971267e-04 child_process\\child-process-read.js dur=5 len=1024 0.83 % ** 1.021766e-03 child_process\\child-process-read.js dur=5 len=256 -1.70 % 4.431098e-01 child_process\\child-process-read.js dur=5 len=4096 -0.54 % 5.921539e-01 child_process\\child-process-read.js dur=5 len=64 0.84 % *** 6.748565e-05 child_process\\spawn-echo.js thousands=1 -0.68 % 3.306275e-01 ```
domain ``` improvement confidence p.value domain\\domain-fn-args.js n=10 arguments=0 -5.22 % 0.13903860 domain\\domain-fn-args.js n=10 arguments=1 -2.80 % 0.12515340 domain\\domain-fn-args.js n=10 arguments=2 -4.77 % * 0.01492218 domain\\domain-fn-args.js n=10 arguments=3 -4.34 % ** 0.00841915 ```
es ``` improvement confidence p.value es\\defaultparams-bench.js millions=100 method="withdefaults" 186.76 % *** 2.057441e-50 es\\defaultparams-bench.js millions=100 method="withoutdefaults" 187.46 % *** 1.148147e-66 es\\destructuring-bench.js millions=100 method="destructure" 58.76 % *** 3.980102e-67 es\\destructuring-bench.js millions=100 method="swap" -73.19 % *** 2.054673e-67 es\\destructuring-object-bench.js millions=100 method="destructureObject" 45.92 % *** 3.253867e-84 es\\destructuring-object-bench.js millions=100 method="normal" -2.25 % *** 1.426450e-24 es\\map-bench.js millions=1 method="fakeMap" -0.54 % 8.154590e-02 es\\map-bench.js millions=1 method="map" -1.98 % *** 4.223953e-12 es\\map-bench.js millions=1 method="nullProtoObject" -9.73 % *** 2.357791e-35 es\\map-bench.js millions=1 method="object" -6.76 % *** 2.362004e-27 es\\restparams-bench.js millions=100 method="arguments" -9.20 % *** 7.682132e-16 es\\restparams-bench.js millions=100 method="copy" -23.35 % *** 7.057908e-56 es\\restparams-bench.js millions=100 method="rest" 303.00 % *** 8.692510e-87 es\\spread-bench.js millions=5 rest=0 context="context" count=10 method="apply" 6.25 % *** 2.747691e-37 es\\spread-bench.js millions=5 rest=0 context="context" count=10 method="call-spread" 4.22 % *** 1.238224e-33 es\\spread-bench.js millions=5 rest=0 context="context" count=10 method="spread" 5.66 % *** 1.230090e-19 es\\spread-bench.js millions=5 rest=0 context="context" count=20 method="apply" 4.22 % *** 9.667833e-21 es\\spread-bench.js millions=5 rest=0 context="context" count=20 method="call-spread" 3.61 % *** 2.641823e-15 es\\spread-bench.js millions=5 rest=0 context="context" count=20 method="spread" 3.95 % *** 1.124106e-25 es\\spread-bench.js millions=5 rest=0 context="context" count=5 method="apply" 7.54 % *** 2.061487e-11 es\\spread-bench.js millions=5 rest=0 context="context" count=5 method="call-spread" 7.91 % *** 2.713476e-19 es\\spread-bench.js millions=5 rest=0 context="context" count=5 method="spread" 8.16 % *** 2.198573e-14 es\\spread-bench.js millions=5 rest=0 context="null" count=10 method="apply" 5.37 % *** 6.674710e-23 es\\spread-bench.js millions=5 rest=0 context="null" count=10 method="call-spread" 4.07 % *** 5.798976e-38 es\\spread-bench.js millions=5 rest=0 context="null" count=10 method="spread" 6.06 % *** 2.881326e-22 es\\spread-bench.js millions=5 rest=0 context="null" count=20 method="apply" 4.40 % *** 9.221114e-39 es\\spread-bench.js millions=5 rest=0 context="null" count=20 method="call-spread" 3.29 % *** 1.949925e-19 es\\spread-bench.js millions=5 rest=0 context="null" count=20 method="spread" 4.23 % *** 6.953280e-25 es\\spread-bench.js millions=5 rest=0 context="null" count=5 method="apply" 8.92 % *** 5.443435e-15 es\\spread-bench.js millions=5 rest=0 context="null" count=5 method="call-spread" 6.58 % *** 1.196305e-14 es\\spread-bench.js millions=5 rest=0 context="null" count=5 method="spread" 7.35 % *** 1.602696e-12 es\\spread-bench.js millions=5 rest=1 context="context" count=10 method="apply" 40.98 % *** 1.500746e-56 es\\spread-bench.js millions=5 rest=1 context="context" count=10 method="call-spread" 27.83 % *** 2.708692e-84 es\\spread-bench.js millions=5 rest=1 context="context" count=10 method="spread" 36.68 % *** 9.473065e-70 es\\spread-bench.js millions=5 rest=1 context="context" count=20 method="apply" 31.29 % *** 9.726107e-80 es\\spread-bench.js millions=5 rest=1 context="context" count=20 method="call-spread" 19.57 % *** 2.758893e-73 es\\spread-bench.js millions=5 rest=1 context="context" count=20 method="spread" 26.39 % *** 8.597381e-55 es\\spread-bench.js millions=5 rest=1 context="context" count=5 method="apply" 53.11 % *** 4.678357e-80 es\\spread-bench.js millions=5 rest=1 context="context" count=5 method="call-spread" 38.85 % *** 5.448252e-79 es\\spread-bench.js millions=5 rest=1 context="context" count=5 method="spread" 48.35 % *** 1.633168e-59 es\\spread-bench.js millions=5 rest=1 context="null" count=10 method="apply" 40.47 % *** 2.991328e-42 es\\spread-bench.js millions=5 rest=1 context="null" count=10 method="call-spread" 27.92 % *** 1.178384e-67 es\\spread-bench.js millions=5 rest=1 context="null" count=10 method="spread" 38.78 % *** 2.025877e-51 es\\spread-bench.js millions=5 rest=1 context="null" count=20 method="apply" 31.04 % *** 1.404906e-83 es\\spread-bench.js millions=5 rest=1 context="null" count=20 method="call-spread" 19.52 % *** 2.329415e-75 es\\spread-bench.js millions=5 rest=1 context="null" count=20 method="spread" 27.37 % *** 1.218005e-65 es\\spread-bench.js millions=5 rest=1 context="null" count=5 method="apply" 51.95 % *** 2.989997e-47 es\\spread-bench.js millions=5 rest=1 context="null" count=5 method="call-spread" 38.73 % *** 9.373389e-50 es\\spread-bench.js millions=5 rest=1 context="null" count=5 method="spread" 51.66 % *** 3.193677e-48 ```
new es/foreach-bench.js ``` improvement confidence p.value es\\foreach-bench.js millions=5 count=10 method="for-in" 1.36 % *** 1.074313e-05 es\\foreach-bench.js millions=5 count=10 method="for-of" 0.70 % *** 4.396489e-04 es\\foreach-bench.js millions=5 count=10 method="for" 5.31 % *** 2.817524e-26 es\\foreach-bench.js millions=5 count=10 method="forEach" 6.71 % *** 6.956617e-23 es\\foreach-bench.js millions=5 count=100 method="for-in" -2.48 % *** 1.222102e-12 es\\foreach-bench.js millions=5 count=100 method="for-of" 1.85 % *** 1.263492e-11 es\\foreach-bench.js millions=5 count=100 method="for" 21.90 % *** 1.471960e-44 es\\foreach-bench.js millions=5 count=100 method="forEach" -5.37 % *** 6.729070e-24 es\\foreach-bench.js millions=5 count=20 method="for-in" -1.60 % *** 1.931362e-07 es\\foreach-bench.js millions=5 count=20 method="for-of" 1.13 % *** 1.624073e-06 es\\foreach-bench.js millions=5 count=20 method="for" 12.95 % *** 7.255962e-58 es\\foreach-bench.js millions=5 count=20 method="forEach" 0.84 % *** 6.306995e-04 es\\foreach-bench.js millions=5 count=5 method="for-in" 2.90 % *** 2.485570e-13 es\\foreach-bench.js millions=5 count=5 method="for-of" -0.14 % 5.990183e-01 es\\foreach-bench.js millions=5 count=5 method="for" -3.16 % *** 1.395389e-07 es\\foreach-bench.js millions=5 count=5 method="forEach" 17.81 % *** 5.034140e-57 ```
events ``` improvement confidence p.value events\\ee-add-remove.js n=250000 -45.96 % *** 9.772078e-70 events\\ee-emit-multi-args.js n=2000000 -37.43 % *** 1.653690e-47 events\\ee-emit.js n=2000000 -42.67 % *** 1.317334e-47 events\\ee-listener-count-on-prototype.js n=50000000 120.82 % *** 3.881793e-63 events\\ee-listeners-many.js n=5000000 22.51 % *** 7.230026e-65 events\\ee-listeners.js n=5000000 12.49 % *** 5.530568e-39 events\\ee-once.js n=20000000 -17.92 % *** 3.652062e-28 ```
http The most long `http` benchmarks was a little shortened: `check_is_http_token.js` was launched with `set n=5e7` instead of `5e8` and `simple.js` was launched with `--runs 15` instead of `30`. ``` improvement confidence p.value http\\bench-parser.js n=100000 fields=16 -4.37 % *** 3.569241e-28 http\\bench-parser.js n=100000 fields=32 -3.46 % * 1.656215e-02 http\\bench-parser.js n=100000 fields=4 -11.25 % *** 1.023311e-42 http\\bench-parser.js n=100000 fields=8 -7.27 % *** 7.002934e-31 http\\check_invalid_header_char.js n=500000000 key="\177" -88.89 % *** 1.087074e-76 http\\check_invalid_header_char.js n=500000000 key="" -78.56 % *** 1.307016e-82 http\\check_invalid_header_char.js n=500000000 key="\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tFoo bar baz" -38.94 % *** 1.564267e-107 http\\check_invalid_header_char.js n=500000000 key="1" -82.84 % *** 2.208471e-91 http\\check_invalid_header_char.js n=500000000 key="20091" -80.15 % *** 3.797239e-116 http\\check_invalid_header_char.js n=500000000 key="close" -80.14 % *** 1.631525e-142 http\\check_invalid_header_char.js n=500000000 key="en-US" -80.17 % *** 3.793769e-80 http\\check_invalid_header_char.js n=500000000 key="foo\\nbar" -91.21 % *** 7.622870e-154 http\\check_invalid_header_char.js n=500000000 key="gzip" -86.58 % *** 7.193320e-79 http\\check_invalid_header_char.js n=500000000 key="Here is a value..." -27.15 % *** 6.119973e-45 http\\check_invalid_header_char.js n=500000000 key="keep-alive" -54.69 % *** 2.247444e-66 http\\check_invalid_header_char.js n=500000000 key="private" -66.71 % *** 2.391885e-86 http\\check_invalid_header_char.js n=500000000 key="SAMEORIGIN" -54.73 % *** 4.635725e-76 http\\check_invalid_header_char.js n=500000000 key="Sat, 07 May 2016 16:54:48 GMT" -33.52 % *** 1.358258e-82 http\\check_invalid_header_char.js n=500000000 key="text/html; charset=utf-8" -36.93 % *** 1.107974e-47 http\\check_invalid_header_char.js n=500000000 key="text/plain" -54.66 % *** 8.837458e-56 http\\check_invalid_header_char.js n=500000000 key="中文呢" -34.59 % *** 3.093828e-52 http\\check_is_http_token.js n=50000000 key="((((())))" -80.63 % *** 2.506936e-60 http\\check_is_http_token.js n=50000000 key=":" -80.65 % *** 1.934004e-87 http\\check_is_http_token.js n=50000000 key=":alternate-protocol" -84.86 % *** 1.537442e-60 http\\check_is_http_token.js n=50000000 key="@@" -80.56 % *** 3.816927e-52 http\\check_is_http_token.js n=50000000 key="Accept-Ranges" -50.52 % *** 1.374950e-83 http\\check_is_http_token.js n=50000000 key="alt-svc" -59.64 % *** 1.257471e-71 http\\check_is_http_token.js n=50000000 key="alternate-protocol" -45.46 % *** 5.911024e-63 http\\check_is_http_token.js n=50000000 key="alternate-protocol:" -41.62 % *** 2.682686e-53 http\\check_is_http_token.js n=50000000 key="Cache-Control" -50.74 % *** 1.960734e-90 http\\check_is_http_token.js n=50000000 key="Connection" -47.90 % *** 8.006204e-63 http\\check_is_http_token.js n=50000000 key="Content-Encoding" -47.17 % *** 5.423750e-83 http\\check_is_http_token.js n=50000000 key="content-length" -49.73 % *** 1.641712e-59 http\\check_is_http_token.js n=50000000 key="Content-Location" -47.06 % *** 6.244804e-71 http\\check_is_http_token.js n=50000000 key="content-type" -43.33 % *** 7.090822e-71 http\\check_is_http_token.js n=50000000 key="Content-Type" -43.09 % *** 2.151129e-81 http\\check_is_http_token.js n=50000000 key="date" -81.51 % *** 1.778910e-73 http\\check_is_http_token.js n=50000000 key="ETag" -81.50 % *** 1.212925e-76 http\\check_is_http_token.js n=50000000 key="Expires" -59.18 % *** 1.485951e-74 http\\check_is_http_token.js n=50000000 key="Keep-Alive" -48.43 % *** 1.040756e-46 http\\check_is_http_token.js n=50000000 key="Last-Modified" -51.02 % *** 3.781236e-60 http\\check_is_http_token.js n=50000000 key="location" -55.80 % *** 5.556102e-64 http\\check_is_http_token.js n=50000000 key="server" -66.11 % *** 1.714344e-66 http\\check_is_http_token.js n=50000000 key="Server" -66.24 % *** 1.778495e-73 http\\check_is_http_token.js n=50000000 key="status" -66.81 % *** 1.687298e-60 http\\check_is_http_token.js n=50000000 key="TCN" -79.83 % *** 1.301879e-98 http\\check_is_http_token.js n=50000000 key="Transfer-Encoding" -46.97 % *** 2.318722e-45 http\\check_is_http_token.js n=50000000 key="Vary" -81.36 % *** 4.002107e-62 http\\check_is_http_token.js n=50000000 key="version" -59.34 % *** 6.095173e-76 http\\check_is_http_token.js n=50000000 key="x-frame-options" -48.38 % *** 2.059074e-70 http\\check_is_http_token.js n=50000000 key="x-xss-protection" -47.35 % *** 5.648471e-81 http\\check_is_http_token.js n=50000000 key="中文呢" -19.31 % *** 2.692170e-52 http\\chunked.js c=100 size=1 num=1 benchmarker="autocannon" -3.55 % *** 1.177415e-18 http\\chunked.js c=100 size=1 num=16 benchmarker="autocannon" -3.60 % *** 1.004363e-11 http\\chunked.js c=100 size=1 num=4 benchmarker="autocannon" -3.92 % *** 1.605936e-16 http\\chunked.js c=100 size=1 num=8 benchmarker="autocannon" -2.09 % *** 2.829203e-06 http\\chunked.js c=100 size=256 num=1 benchmarker="autocannon" -3.04 % *** 1.866999e-10 http\\chunked.js c=100 size=256 num=16 benchmarker="autocannon" -3.21 % *** 1.381201e-09 http\\chunked.js c=100 size=256 num=4 benchmarker="autocannon" -3.28 % *** 2.463133e-12 http\\chunked.js c=100 size=256 num=8 benchmarker="autocannon" -1.72 % *** 1.776643e-05 http\\chunked.js c=100 size=64 num=1 benchmarker="autocannon" -3.03 % *** 4.151764e-12 http\\chunked.js c=100 size=64 num=16 benchmarker="autocannon" -2.08 % *** 4.864422e-06 http\\chunked.js c=100 size=64 num=4 benchmarker="autocannon" -2.22 % *** 3.388990e-08 http\\chunked.js c=100 size=64 num=8 benchmarker="autocannon" -2.72 % *** 2.561185e-07 http\\client-request-body.js method="end" bytes=1024 type="asc" dur=5 -7.01 % *** 4.134339e-31 http\\client-request-body.js method="end" bytes=1024 type="buf" dur=5 -7.91 % *** 3.154750e-34 http\\client-request-body.js method="end" bytes=1024 type="utf" dur=5 -6.49 % *** 1.395121e-24 http\\client-request-body.js method="end" bytes=256 type="asc" dur=5 -6.90 % *** 2.348893e-33 http\\client-request-body.js method="end" bytes=256 type="buf" dur=5 -7.20 % *** 8.542280e-32 http\\client-request-body.js method="end" bytes=256 type="utf" dur=5 -7.13 % *** 9.335939e-36 http\\client-request-body.js method="end" bytes=32 type="asc" dur=5 -7.08 % *** 7.227582e-30 http\\client-request-body.js method="end" bytes=32 type="buf" dur=5 -7.25 % *** 6.532999e-35 http\\client-request-body.js method="end" bytes=32 type="utf" dur=5 -7.53 % *** 5.631636e-34 http\\client-request-body.js method="write" bytes=1024 type="asc" dur=5 -6.92 % *** 1.649107e-31 http\\client-request-body.js method="write" bytes=1024 type="buf" dur=5 -7.92 % *** 1.222351e-34 http\\client-request-body.js method="write" bytes=1024 type="utf" dur=5 -7.25 % *** 2.691796e-33 http\\client-request-body.js method="write" bytes=256 type="asc" dur=5 -7.01 % *** 3.714085e-32 http\\client-request-body.js method="write" bytes=256 type="buf" dur=5 -8.07 % *** 9.361541e-33 http\\client-request-body.js method="write" bytes=256 type="utf" dur=5 -7.38 % *** 2.399511e-30 http\\client-request-body.js method="write" bytes=32 type="asc" dur=5 -7.06 % *** 2.493660e-27 http\\client-request-body.js method="write" bytes=32 type="buf" dur=5 -8.08 % *** 1.307705e-30 http\\client-request-body.js method="write" bytes=32 type="utf" dur=5 -7.48 % *** 3.392244e-28 http\\cluster.js c=50 length=1024 type="buffer" benchmarker="autocannon" -4.78 % *** 3.117193e-07 http\\cluster.js c=50 length=1024 type="bytes" benchmarker="autocannon" -6.35 % *** 1.130824e-12 http\\cluster.js c=50 length=102400 type="buffer" benchmarker="autocannon" -5.82 % *** 1.821486e-07 http\\cluster.js c=50 length=102400 type="bytes" benchmarker="autocannon" -11.54 % *** 3.221650e-29 http\\cluster.js c=50 length=4 type="buffer" benchmarker="autocannon" -4.55 % *** 2.637825e-07 http\\cluster.js c=50 length=4 type="bytes" benchmarker="autocannon" -6.25 % *** 3.777872e-12 http\\cluster.js c=500 length=1024 type="buffer" benchmarker="autocannon" -5.03 % *** 1.108270e-10 http\\cluster.js c=500 length=1024 type="bytes" benchmarker="autocannon" -6.29 % *** 1.814635e-13 http\\cluster.js c=500 length=102400 type="buffer" benchmarker="autocannon" -5.29 % *** 4.350849e-05 http\\cluster.js c=500 length=102400 type="bytes" benchmarker="autocannon" -8.68 % *** 1.560928e-10 http\\cluster.js c=500 length=4 type="buffer" benchmarker="autocannon" -5.13 % *** 2.788204e-14 http\\cluster.js c=500 length=4 type="bytes" benchmarker="autocannon" -5.64 % *** 8.692756e-14 http\\create-clientrequest.js n=1000000 pathlen=1 1.76 % ** 6.565825e-03 http\\create-clientrequest.js n=1000000 pathlen=128 6.56 % *** 6.132681e-15 http\\create-clientrequest.js n=1000000 pathlen=16 10.93 % *** 1.240467e-23 http\\create-clientrequest.js n=1000000 pathlen=32 8.79 % *** 5.796884e-14 http\\create-clientrequest.js n=1000000 pathlen=64 6.54 % *** 4.556245e-22 http\\create-clientrequest.js n=1000000 pathlen=8 10.73 % *** 3.209776e-21 http\\end-vs-write-end.js method="end" c=100 kb=1024 type="asc" benchmarker="autocannon" 0.75 % 5.069610e-01 http\\end-vs-write-end.js method="end" c=100 kb=1024 type="buf" benchmarker="autocannon" -2.02 % ** 9.983234e-03 http\\end-vs-write-end.js method="end" c=100 kb=1024 type="utf" benchmarker="autocannon" 1.09 % 3.372412e-01 http\\end-vs-write-end.js method="end" c=100 kb=128 type="asc" benchmarker="autocannon" -10.09 % *** 7.552131e-18 http\\end-vs-write-end.js method="end" c=100 kb=128 type="buf" benchmarker="autocannon" -1.92 % * 3.740466e-02 http\\end-vs-write-end.js method="end" c=100 kb=128 type="utf" benchmarker="autocannon" -8.95 % *** 1.480997e-16 http\\end-vs-write-end.js method="end" c=100 kb=256 type="asc" benchmarker="autocannon" -4.08 % *** 1.377526e-06 http\\end-vs-write-end.js method="end" c=100 kb=256 type="buf" benchmarker="autocannon" 0.12 % 9.113114e-01 http\\end-vs-write-end.js method="end" c=100 kb=256 type="utf" benchmarker="autocannon" -3.19 % *** 1.029744e-05 http\\end-vs-write-end.js method="end" c=100 kb=64 type="asc" benchmarker="autocannon" -16.43 % *** 3.308102e-21 http\\end-vs-write-end.js method="end" c=100 kb=64 type="buf" benchmarker="autocannon" -1.25 % 1.566492e-01 http\\end-vs-write-end.js method="end" c=100 kb=64 type="utf" benchmarker="autocannon" -8.49 % *** 1.176542e-10 http\\end-vs-write-end.js method="write" c=100 kb=1024 type="asc" benchmarker="autocannon" -0.12 % 9.341455e-01 http\\end-vs-write-end.js method="write" c=100 kb=1024 type="buf" benchmarker="autocannon" 0.16 % 7.890450e-01 http\\end-vs-write-end.js method="write" c=100 kb=1024 type="utf" benchmarker="autocannon" -0.52 % 5.004981e-01 http\\end-vs-write-end.js method="write" c=100 kb=128 type="asc" benchmarker="autocannon" -11.05 % *** 1.926600e-16 http\\end-vs-write-end.js method="write" c=100 kb=128 type="buf" benchmarker="autocannon" -6.46 % *** 3.579947e-08 http\\end-vs-write-end.js method="write" c=100 kb=128 type="utf" benchmarker="autocannon" -11.42 % *** 8.420314e-24 http\\end-vs-write-end.js method="write" c=100 kb=256 type="asc" benchmarker="autocannon" -6.61 % *** 1.701159e-08 http\\end-vs-write-end.js method="write" c=100 kb=256 type="buf" benchmarker="autocannon" -6.35 % *** 1.870454e-07 http\\end-vs-write-end.js method="write" c=100 kb=256 type="utf" benchmarker="autocannon" -5.31 % *** 2.040191e-11 http\\end-vs-write-end.js method="write" c=100 kb=64 type="asc" benchmarker="autocannon" -23.43 % *** 1.297754e-26 http\\end-vs-write-end.js method="write" c=100 kb=64 type="buf" benchmarker="autocannon" -6.51 % *** 4.032692e-11 http\\end-vs-write-end.js method="write" c=100 kb=64 type="utf" benchmarker="autocannon" -11.04 % *** 1.206863e-19 http\\http_server_for_chunky_client.js type="send" num=2000 len=1 -5.79 % *** 8.491075e-18 http\\http_server_for_chunky_client.js type="send" num=2000 len=128 -2.59 % *** 8.357146e-14 http\\http_server_for_chunky_client.js type="send" num=2000 len=16 -4.59 % *** 1.302737e-22 http\\http_server_for_chunky_client.js type="send" num=2000 len=32 -3.71 % *** 8.800441e-16 http\\http_server_for_chunky_client.js type="send" num=2000 len=4 -5.07 % *** 6.604031e-17 http\\http_server_for_chunky_client.js type="send" num=2000 len=64 -3.57 % *** 2.493372e-14 http\\http_server_for_chunky_client.js type="send" num=2000 len=8 -5.43 % *** 6.684029e-18 http\\http_server_for_chunky_client.js type="send" num=5 len=1 -10.95 % *** 7.295982e-17 http\\http_server_for_chunky_client.js type="send" num=5 len=128 -18.91 % *** 1.691256e-28 http\\http_server_for_chunky_client.js type="send" num=5 len=16 -17.17 % *** 7.613305e-20 http\\http_server_for_chunky_client.js type="send" num=5 len=32 -16.70 % *** 9.378219e-23 http\\http_server_for_chunky_client.js type="send" num=5 len=4 -20.17 % *** 2.267978e-33 http\\http_server_for_chunky_client.js type="send" num=5 len=64 -18.62 % *** 6.457991e-23 http\\http_server_for_chunky_client.js type="send" num=5 len=8 -19.49 % *** 2.003852e-18 http\\http_server_for_chunky_client.js type="send" num=50 len=1 -15.03 % *** 1.106210e-39 http\\http_server_for_chunky_client.js type="send" num=50 len=128 -12.93 % *** 1.578896e-43 http\\http_server_for_chunky_client.js type="send" num=50 len=16 -14.41 % *** 2.370400e-40 http\\http_server_for_chunky_client.js type="send" num=50 len=32 -13.41 % *** 1.407625e-40 http\\http_server_for_chunky_client.js type="send" num=50 len=4 -14.83 % *** 1.022015e-43 http\\http_server_for_chunky_client.js type="send" num=50 len=64 -13.13 % *** 3.283492e-46 http\\http_server_for_chunky_client.js type="send" num=50 len=8 -14.18 % *** 1.020625e-41 http\\http_server_for_chunky_client.js type="send" num=500 len=1 -5.87 % *** 1.111754e-06 http\\http_server_for_chunky_client.js type="send" num=500 len=128 -4.72 % *** 4.420159e-19 http\\http_server_for_chunky_client.js type="send" num=500 len=16 -5.36 % *** 2.092015e-22 http\\http_server_for_chunky_client.js type="send" num=500 len=32 -3.68 % *** 1.404249e-13 http\\http_server_for_chunky_client.js type="send" num=500 len=4 -6.57 % *** 1.223214e-16 http\\http_server_for_chunky_client.js type="send" num=500 len=64 -4.79 % *** 2.066460e-23 http\\http_server_for_chunky_client.js type="send" num=500 len=8 -4.79 % *** 1.513417e-07 http\\simple.js res="normal" c=50 chunks=0 length=1024 type="buffer" benchmarker="autocannon" -4.17 % *** 4.862845e-05 http\\simple.js res="normal" c=50 chunks=0 length=1024 type="bytes" benchmarker="autocannon" -8.43 % *** 5.454468e-07 http\\simple.js res="normal" c=50 chunks=0 length=102400 type="buffer" benchmarker="autocannon" -4.91 % ** 3.241289e-03 http\\simple.js res="normal" c=50 chunks=0 length=102400 type="bytes" benchmarker="autocannon" -25.24 % *** 7.674309e-16 http\\simple.js res="normal" c=50 chunks=0 length=4 type="buffer" benchmarker="autocannon" -4.59 % *** 8.669667e-05 http\\simple.js res="normal" c=50 chunks=0 length=4 type="bytes" benchmarker="autocannon" -6.32 % *** 1.054130e-05 http\\simple.js res="normal" c=50 chunks=1 length=1024 type="buffer" benchmarker="autocannon" -5.06 % *** 2.501442e-05 http\\simple.js res="normal" c=50 chunks=1 length=1024 type="bytes" benchmarker="autocannon" -5.65 % *** 6.339490e-05 http\\simple.js res="normal" c=50 chunks=1 length=102400 type="buffer" benchmarker="autocannon" -3.28 % * 2.691863e-02 http\\simple.js res="normal" c=50 chunks=1 length=102400 type="bytes" benchmarker="autocannon" -13.40 % *** 1.355733e-16 http\\simple.js res="normal" c=50 chunks=1 length=4 type="buffer" benchmarker="autocannon" -4.24 % *** 3.382373e-04 http\\simple.js res="normal" c=50 chunks=1 length=4 type="bytes" benchmarker="autocannon" -4.45 % *** 2.801222e-05 http\\simple.js res="normal" c=50 chunks=4 length=1024 type="buffer" benchmarker="autocannon" -4.72 % *** 3.078187e-05 http\\simple.js res="normal" c=50 chunks=4 length=1024 type="bytes" benchmarker="autocannon" -3.68 % ** 3.193511e-03 http\\simple.js res="normal" c=50 chunks=4 length=102400 type="buffer" benchmarker="autocannon" -4.79 % ** 7.796647e-03 http\\simple.js res="normal" c=50 chunks=4 length=102400 type="bytes" benchmarker="autocannon" -9.21 % *** 7.230804e-05 http\\simple.js res="normal" c=50 chunks=4 length=4 type="buffer" benchmarker="autocannon" -5.82 % *** 2.674268e-05 http\\simple.js res="normal" c=50 chunks=4 length=4 type="bytes" benchmarker="autocannon" -4.23 % *** 4.396474e-04 http\\simple.js res="normal" c=500 chunks=0 length=1024 type="buffer" benchmarker="autocannon" -6.52 % *** 1.124726e-07 http\\simple.js res="normal" c=500 chunks=0 length=1024 type="bytes" benchmarker="autocannon" -8.37 % *** 7.851841e-08 http\\simple.js res="normal" c=500 chunks=0 length=102400 type="buffer" benchmarker="autocannon" -3.67 % * 3.904036e-02 http\\simple.js res="normal" c=500 chunks=0 length=102400 type="bytes" benchmarker="autocannon" -28.70 % *** 1.658213e-18 http\\simple.js res="normal" c=500 chunks=0 length=4 type="buffer" benchmarker="autocannon" -5.55 % *** 1.105788e-06 http\\simple.js res="normal" c=500 chunks=0 length=4 type="bytes" benchmarker="autocannon" -3.46 % ** 3.664429e-03 http\\simple.js res="normal" c=500 chunks=1 length=1024 type="buffer" benchmarker="autocannon" -5.76 % *** 2.093527e-06 http\\simple.js res="normal" c=500 chunks=1 length=1024 type="bytes" benchmarker="autocannon" -4.83 % *** 5.687172e-04 http\\simple.js res="normal" c=500 chunks=1 length=102400 type="buffer" benchmarker="autocannon" -3.93 % * 1.443829e-02 http\\simple.js res="normal" c=500 chunks=1 length=102400 type="bytes" benchmarker="autocannon" -15.57 % *** 2.753559e-17 http\\simple.js res="normal" c=500 chunks=1 length=4 type="buffer" benchmarker="autocannon" -6.46 % *** 7.633596e-07 http\\simple.js res="normal" c=500 chunks=1 length=4 type="bytes" benchmarker="autocannon" -4.28 % *** 6.074356e-04 http\\simple.js res="normal" c=500 chunks=4 length=1024 type="buffer" benchmarker="autocannon" -4.10 % *** 3.614595e-04 http\\simple.js res="normal" c=500 chunks=4 length=1024 type="bytes" benchmarker="autocannon" -3.00 % ** 6.119423e-03 http\\simple.js res="normal" c=500 chunks=4 length=102400 type="buffer" benchmarker="autocannon" -5.17 % ** 7.153175e-03 http\\simple.js res="normal" c=500 chunks=4 length=102400 type="bytes" benchmarker="autocannon" -5.45 % * 1.902785e-02 http\\simple.js res="normal" c=500 chunks=4 length=4 type="buffer" benchmarker="autocannon" -6.04 % *** 1.989949e-08 http\\simple.js res="normal" c=500 chunks=4 length=4 type="bytes" benchmarker="autocannon" -2.89 % * 2.727371e-02 http\\simple.js res="setHeader" c=50 chunks=0 length=1024 type="buffer" benchmarker="autocannon" -5.84 % *** 3.927146e-09 http\\simple.js res="setHeader" c=50 chunks=0 length=1024 type="bytes" benchmarker="autocannon" -8.28 % *** 1.050204e-07 http\\simple.js res="setHeader" c=50 chunks=0 length=102400 type="buffer" benchmarker="autocannon" -4.73 % ** 3.158161e-03 http\\simple.js res="setHeader" c=50 chunks=0 length=102400 type="bytes" benchmarker="autocannon" -10.73 % *** 5.309183e-15 http\\simple.js res="setHeader" c=50 chunks=0 length=4 type="buffer" benchmarker="autocannon" -6.36 % *** 1.812964e-09 http\\simple.js res="setHeader" c=50 chunks=0 length=4 type="bytes" benchmarker="autocannon" -5.88 % *** 3.057814e-04 http\\simple.js res="setHeader" c=50 chunks=1 length=1024 type="buffer" benchmarker="autocannon" -5.58 % *** 1.925861e-08 http\\simple.js res="setHeader" c=50 chunks=1 length=1024 type="bytes" benchmarker="autocannon" -6.23 % *** 2.869951e-06 http\\simple.js res="setHeader" c=50 chunks=1 length=102400 type="buffer" benchmarker="autocannon" -5.82 % ** 1.198956e-03 http\\simple.js res="setHeader" c=50 chunks=1 length=102400 type="bytes" benchmarker="autocannon" -10.41 % *** 1.290550e-13 http\\simple.js res="setHeader" c=50 chunks=1 length=4 type="buffer" benchmarker="autocannon" -6.35 % *** 4.469679e-08 http\\simple.js res="setHeader" c=50 chunks=1 length=4 type="bytes" benchmarker="autocannon" -4.81 % *** 7.020090e-06 http\\simple.js res="setHeader" c=50 chunks=4 length=1024 type="buffer" benchmarker="autocannon" -5.62 % *** 4.475218e-06 http\\simple.js res="setHeader" c=50 chunks=4 length=1024 type="bytes" benchmarker="autocannon" -3.18 % ** 2.280484e-03 http\\simple.js res="setHeader" c=50 chunks=4 length=102400 type="buffer" benchmarker="autocannon" -5.60 % ** 2.814704e-03 http\\simple.js res="setHeader" c=50 chunks=4 length=102400 type="bytes" benchmarker="autocannon" -6.29 % ** 3.563679e-03 http\\simple.js res="setHeader" c=50 chunks=4 length=4 type="buffer" benchmarker="autocannon" -6.56 % *** 1.448702e-08 http\\simple.js res="setHeader" c=50 chunks=4 length=4 type="bytes" benchmarker="autocannon" -2.69 % * 1.272579e-02 http\\simple.js res="setHeader" c=500 chunks=0 length=1024 type="buffer" benchmarker="autocannon" -5.44 % *** 1.667645e-05 http\\simple.js res="setHeader" c=500 chunks=0 length=1024 type="bytes" benchmarker="autocannon" -8.81 % *** 9.475921e-08 http\\simple.js res="setHeader" c=500 chunks=0 length=102400 type="buffer" benchmarker="autocannon" -2.75 % 6.818363e-02 http\\simple.js res="setHeader" c=500 chunks=0 length=102400 type="bytes" benchmarker="autocannon" -10.21 % *** 2.970999e-13 http\\simple.js res="setHeader" c=500 chunks=0 length=4 type="buffer" benchmarker="autocannon" -4.93 % *** 4.878756e-04 http\\simple.js res="setHeader" c=500 chunks=0 length=4 type="bytes" benchmarker="autocannon" -8.33 % *** 4.536478e-09 http\\simple.js res="setHeader" c=500 chunks=1 length=1024 type="buffer" benchmarker="autocannon" -5.24 % *** 1.016925e-04 http\\simple.js res="setHeader" c=500 chunks=1 length=1024 type="bytes" benchmarker="autocannon" -6.63 % *** 9.762973e-05 http\\simple.js res="setHeader" c=500 chunks=1 length=102400 type="buffer" benchmarker="autocannon" -4.17 % * 2.297458e-02 http\\simple.js res="setHeader" c=500 chunks=1 length=102400 type="bytes" benchmarker="autocannon" -12.01 % *** 1.902364e-17 http\\simple.js res="setHeader" c=500 chunks=1 length=4 type="buffer" benchmarker="autocannon" -4.51 % *** 4.990340e-04 http\\simple.js res="setHeader" c=500 chunks=1 length=4 type="bytes" benchmarker="autocannon" -6.48 % *** 2.152770e-06 http\\simple.js res="setHeader" c=500 chunks=4 length=1024 type="buffer" benchmarker="autocannon" -5.43 % *** 5.798034e-06 http\\simple.js res="setHeader" c=500 chunks=4 length=1024 type="bytes" benchmarker="autocannon" -3.33 % * 2.798374e-02 http\\simple.js res="setHeader" c=500 chunks=4 length=102400 type="buffer" benchmarker="autocannon" -4.07 % * 3.823748e-02 http\\simple.js res="setHeader" c=500 chunks=4 length=102400 type="bytes" benchmarker="autocannon" -8.36 % *** 3.811375e-04 http\\simple.js res="setHeader" c=500 chunks=4 length=4 type="buffer" benchmarker="autocannon" -5.58 % *** 2.991319e-05 http\\simple.js res="setHeader" c=500 chunks=4 length=4 type="bytes" benchmarker="autocannon" -3.15 % * 3.128712e-02 http\\simple.js res="setHeaderWH" c=50 chunks=0 length=1024 type="buffer" benchmarker="autocannon" -4.23 % *** 1.635204e-04 http\\simple.js res="setHeaderWH" c=50 chunks=0 length=1024 type="bytes" benchmarker="autocannon" -9.60 % *** 1.959187e-07 http\\simple.js res="setHeaderWH" c=50 chunks=0 length=102400 type="buffer" benchmarker="autocannon" -3.42 % * 1.414317e-02 http\\simple.js res="setHeaderWH" c=50 chunks=0 length=102400 type="bytes" benchmarker="autocannon" -24.92 % *** 1.729289e-12 http\\simple.js res="setHeaderWH" c=50 chunks=0 length=4 type="buffer" benchmarker="autocannon" -3.85 % ** 2.921067e-03 http\\simple.js res="setHeaderWH" c=50 chunks=0 length=4 type="bytes" benchmarker="autocannon" -7.80 % *** 1.600889e-07 http\\simple.js res="setHeaderWH" c=50 chunks=1 length=1024 type="buffer" benchmarker="autocannon" -4.69 % *** 5.645600e-05 http\\simple.js res="setHeaderWH" c=50 chunks=1 length=1024 type="bytes" benchmarker="autocannon" -7.51 % *** 3.705732e-06 http\\simple.js res="setHeaderWH" c=50 chunks=1 length=102400 type="buffer" benchmarker="autocannon" -4.58 % *** 7.952977e-04 http\\simple.js res="setHeaderWH" c=50 chunks=1 length=102400 type="bytes" benchmarker="autocannon" -13.14 % *** 4.292583e-18 http\\simple.js res="setHeaderWH" c=50 chunks=1 length=4 type="buffer" benchmarker="autocannon" -4.65 % *** 4.776798e-05 http\\simple.js res="setHeaderWH" c=50 chunks=1 length=4 type="bytes" benchmarker="autocannon" -5.81 % *** 3.656902e-06 http\\simple.js res="setHeaderWH" c=50 chunks=4 length=1024 type="buffer" benchmarker="autocannon" -5.38 % *** 5.252614e-06 http\\simple.js res="setHeaderWH" c=50 chunks=4 length=1024 type="bytes" benchmarker="autocannon" -3.39 % ** 7.162036e-03 http\\simple.js res="setHeaderWH" c=50 chunks=4 length=102400 type="buffer" benchmarker="autocannon" -4.63 % ** 6.541741e-03 http\\simple.js res="setHeaderWH" c=50 chunks=4 length=102400 type="bytes" benchmarker="autocannon" -8.07 % *** 6.679127e-04 http\\simple.js res="setHeaderWH" c=50 chunks=4 length=4 type="buffer" benchmarker="autocannon" -5.88 % *** 1.664189e-06 http\\simple.js res="setHeaderWH" c=50 chunks=4 length=4 type="bytes" benchmarker="autocannon" -3.82 % *** 7.560696e-04 http\\simple.js res="setHeaderWH" c=500 chunks=0 length=1024 type="buffer" benchmarker="autocannon" -5.89 % *** 3.958380e-07 http\\simple.js res="setHeaderWH" c=500 chunks=0 length=1024 type="bytes" benchmarker="autocannon" -9.99 % *** 3.889125e-09 http\\simple.js res="setHeaderWH" c=500 chunks=0 length=102400 type="buffer" benchmarker="autocannon" -3.60 % * 4.319252e-02 http\\simple.js res="setHeaderWH" c=500 chunks=0 length=102400 type="bytes" benchmarker="autocannon" -28.63 % *** 2.439082e-18 http\\simple.js res="setHeaderWH" c=500 chunks=0 length=4 type="buffer" benchmarker="autocannon" -6.45 % *** 3.711696e-10 http\\simple.js res="setHeaderWH" c=500 chunks=0 length=4 type="bytes" benchmarker="autocannon" -7.29 % *** 2.646061e-08 http\\simple.js res="setHeaderWH" c=500 chunks=1 length=1024 type="buffer" benchmarker="autocannon" -6.22 % *** 9.347363e-06 http\\simple.js res="setHeaderWH" c=500 chunks=1 length=1024 type="bytes" benchmarker="autocannon" -6.44 % *** 1.845766e-05 http\\simple.js res="setHeaderWH" c=500 chunks=1 length=102400 type="buffer" benchmarker="autocannon" -5.09 % * 1.153079e-02 http\\simple.js res="setHeaderWH" c=500 chunks=1 length=102400 type="bytes" benchmarker="autocannon" -15.37 % *** 1.632493e-16 http\\simple.js res="setHeaderWH" c=500 chunks=1 length=4 type="buffer" benchmarker="autocannon" -5.77 % *** 9.809755e-07 http\\simple.js res="setHeaderWH" c=500 chunks=1 length=4 type="bytes" benchmarker="autocannon" -4.46 % *** 3.223076e-04 http\\simple.js res="setHeaderWH" c=500 chunks=4 length=1024 type="buffer" benchmarker="autocannon" -6.08 % *** 5.702144e-06 http\\simple.js res="setHeaderWH" c=500 chunks=4 length=1024 type="bytes" benchmarker="autocannon" -2.95 % * 1.536396e-02 http\\simple.js res="setHeaderWH" c=500 chunks=4 length=102400 type="buffer" benchmarker="autocannon" -4.31 % * 1.684718e-02 http\\simple.js res="setHeaderWH" c=500 chunks=4 length=102400 type="bytes" benchmarker="autocannon" -7.40 % ** 2.654488e-03 http\\simple.js res="setHeaderWH" c=500 chunks=4 length=4 type="buffer" benchmarker="autocannon" -6.73 % *** 7.854392e-09 http\\simple.js res="setHeaderWH" c=500 chunks=4 length=4 type="bytes" benchmarker="autocannon" -3.46 % ** 7.784934e-03 ```
module ``` improvement confidence p.value module\\module-loader.js useCache="false" fullPath="false" thousands=50 -4.24 % * 2.924986e-02 module\\module-loader.js useCache="false" fullPath="true" thousands=50 1.43 % 4.253951e-01 module\\module-loader.js useCache="true" fullPath="false" thousands=50 19.81 % *** 2.188674e-07 module\\module-loader.js useCache="true" fullPath="true" thousands=50 5.57 % 3.987202e-01 ```
net ``` improvement confidence p.value net\\net-c2s-cork.js dur=5 type="buf" len=1024 -1.82 % *** 1.459071e-04 net\\net-c2s-cork.js dur=5 type="buf" len=128 -2.08 % *** 2.868727e-05 net\\net-c2s-cork.js dur=5 type="buf" len=16 -1.22 % ** 7.662987e-03 net\\net-c2s-cork.js dur=5 type="buf" len=32 -1.72 % *** 8.782447e-04 net\\net-c2s-cork.js dur=5 type="buf" len=4 -1.03 % * 2.950394e-02 net\\net-c2s-cork.js dur=5 type="buf" len=512 -2.09 % *** 4.327445e-07 net\\net-c2s-cork.js dur=5 type="buf" len=64 -1.86 % *** 9.534242e-05 net\\net-c2s-cork.js dur=5 type="buf" len=8 1.23 % ** 3.051232e-03 net\\net-c2s.js dur=5 type="asc" len=102400 -1.57 % *** 1.533519e-04 net\\net-c2s.js dur=5 type="asc" len=16777216 -0.02 % 9.339418e-01 net\\net-c2s.js dur=5 type="buf" len=102400 -1.35 % *** 2.334037e-04 net\\net-c2s.js dur=5 type="buf" len=16777216 0.97 % *** 1.881552e-05 net\\net-c2s.js dur=5 type="utf" len=102400 -0.77 % ** 3.194185e-03 net\\net-c2s.js dur=5 type="utf" len=16777216 0.87 % *** 7.962570e-04 net\\net-pipe.js dur=5 type="asc" len=102400 21.46 % 5.914150e-02 net\\net-pipe.js dur=5 type="asc" len=16777216 -5.31 % 5.306393e-01 net\\net-pipe.js dur=5 type="buf" len=102400 15.24 % 1.506721e-01 net\\net-pipe.js dur=5 type="buf" len=16777216 17.44 % 1.068245e-01 net\\net-pipe.js dur=5 type="utf" len=102400 6.00 % 3.415080e-01 net\\net-pipe.js dur=5 type="utf" len=16777216 4.76 % 5.760742e-01 net\\net-s2c.js dur=5 type="asc" len=102400 -1.26 % *** 1.179792e-04 net\\net-s2c.js dur=5 type="asc" len=16777216 0.24 % 2.778647e-01 net\\net-s2c.js dur=5 type="buf" len=102400 -1.58 % *** 1.175153e-04 net\\net-s2c.js dur=5 type="buf" len=16777216 1.09 % ** 9.607544e-03 net\\net-s2c.js dur=5 type="utf" len=102400 -1.39 % *** 1.722645e-10 net\\net-s2c.js dur=5 type="utf" len=16777216 0.93 % 1.215938e-01 net\\tcp-raw-c2s.js dur=5 type="asc" len=102400 -0.51 % 2.520456e-01 net\\tcp-raw-c2s.js dur=5 type="asc" len=16777216 -0.68 % * 3.019990e-02 net\\tcp-raw-c2s.js dur=5 type="buf" len=102400 -0.53 % 5.924597e-02 net\\tcp-raw-c2s.js dur=5 type="buf" len=16777216 0.65 % ** 1.305128e-03 net\\tcp-raw-c2s.js dur=5 type="utf" len=102400 -0.53 % 9.120898e-02 net\\tcp-raw-c2s.js dur=5 type="utf" len=16777216 0.63 % 1.074695e-01 net\\tcp-raw-s2c.js dur=5 type="asc" len=102400 -0.71 % * 4.672277e-02 net\\tcp-raw-s2c.js dur=5 type="asc" len=16777216 -0.21 % 6.686713e-01 net\\tcp-raw-s2c.js dur=5 type="buf" len=102400 -0.67 % 5.853961e-02 net\\tcp-raw-s2c.js dur=5 type="buf" len=16777216 0.61 % *** 4.102306e-04 net\\tcp-raw-s2c.js dur=5 type="utf" len=102400 -0.21 % 6.136643e-01 net\\tcp-raw-s2c.js dur=5 type="utf" len=16777216 -0.16 % 7.074423e-01 ```
os ``` improvement confidence p.value os\\cpus.js n=30000 -5.34 % *** 1.939582e-21 os\\loadavg.js n=5000000 13.34 % *** 8.419388e-36 ```
process ``` improvement confidence p.value process\\bench-env.js n=100000 0.28 % 1.493386e-01 process\\bench-hrtime.js type="diff" n=1000000 -0.31 % *** 9.291465e-06 process\\bench-hrtime.js type="raw" n=1000000 -0.37 % *** 4.781790e-16 process\\memoryUsage.js n=100000 -5.51 % *** 1.062248e-13 process\\next-tick-breadth-args.js millions=2 -20.70 % *** 5.710155e-60 process\\next-tick-breadth.js millions=2 11.20 % *** 2.730821e-47 process\\next-tick-depth-args.js millions=2 -30.70 % *** 2.342960e-62 process\\next-tick-depth.js millions=2 -28.69 % *** 6.210576e-43 ```
querystring ``` improvement confidence p.value querystring\\querystring-parse.js n=1000000 type="altspaces" -10.92 % *** 1.364564e-13 querystring\\querystring-parse.js n=1000000 type="encodefake" -10.04 % *** 4.934766e-25 querystring\\querystring-parse.js n=1000000 type="encodelast" -10.78 % *** 6.040949e-27 querystring\\querystring-parse.js n=1000000 type="encodemany" -3.88 % *** 2.484171e-12 querystring\\querystring-parse.js n=1000000 type="manyblankpairs" 17.03 % *** 3.669811e-30 querystring\\querystring-parse.js n=1000000 type="manypairs" 71.94 % *** 2.961889e-50 querystring\\querystring-parse.js n=1000000 type="multicharsep" -15.18 % *** 4.718177e-32 querystring\\querystring-parse.js n=1000000 type="multivalue" -2.28 % *** 3.041186e-07 querystring\\querystring-parse.js n=1000000 type="multivaluemany" -14.39 % *** 4.898868e-31 querystring\\querystring-parse.js n=1000000 type="noencode" -11.90 % *** 1.981318e-26 querystring\\querystring-stringify.js n=10000000 type="encodelast" -16.25 % *** 2.404157e-31 querystring\\querystring-stringify.js n=10000000 type="encodemany" -18.63 % *** 3.232300e-64 querystring\\querystring-stringify.js n=10000000 type="noencode" -5.14 % *** 6.372979e-24 querystring\\querystring-unescapebuffer.js n=10000000 input="%20%21%22%23%24%25%26%27%28%29%2A%2B%2C%2D%2E%2F%30%31%32%33%34%35%36%37" -6.47 % *** 1.572508e-22 querystring\\querystring-unescapebuffer.js n=10000000 input="there is nothing to unescape here" 3.07 % *** 2.934277e-06 querystring\\querystring-unescapebuffer.js n=10000000 input="there%20are%20several%20spaces%20that%20need%20to%20be%20unescaped" -10.03 % *** 3.310386e-19 querystring\\querystring-unescapebuffer.js n=10000000 input="there%2Qare%0-fake%escaped values in%%%%this%9Hstring" -5.56 % *** 6.509139e-16 ```
streams ``` improvement confidence p.value streams/readable-bigread.js n=1000 -10.73 % *** 1.269154e-12 streams/readable-bigunevenread.js n=1000 -13.88 % *** 1.834009e-19 streams/readable-boundaryread.js n=2000 -13.83 % *** 4.606770e-10 streams/readable-readall.js n=5000 -9.64 % *** 3.697793e-25 streams/readable-unevenread.js n=1000 -8.92 % *** 8.211917e-14 streams/writable-manywrites.js n=2000000 -22.36 % *** 9.987796e-27 ```
streams (windows) ``` improvement confidence p.value streams\\readable-bigread.js n=1000 -17.60 % *** 2.188145e-39 streams\\readable-bigunevenread.js n=1000 -14.71 % *** 8.952692e-34 streams\\readable-boundaryread.js n=2000 -13.13 % *** 8.564883e-31 streams\\readable-readall.js n=5000 -14.74 % *** 2.377291e-42 streams\\readable-unevenread.js n=1000 -13.26 % *** 5.473820e-19 streams\\writable-manywrites.js n=2000000 -15.44 % *** 2.245030e-33 ```
string_decoder (`string-decoder.js` was launched with `n=25e4` instead of `25e5`) ``` improvement confidence p.value string_decoder\\string-decoder-create.js n=25000000 encoding="ascii" -5.57 % *** 2.938499e-28 string_decoder\\string-decoder-create.js n=25000000 encoding="AscII" -11.21 % *** 2.233764e-31 string_decoder\\string-decoder-create.js n=25000000 encoding="base64" 18.13 % *** 2.788810e-43 string_decoder\\string-decoder-create.js n=25000000 encoding="ucs2" 21.31 % *** 3.090671e-35 string_decoder\\string-decoder-create.js n=25000000 encoding="UTF-16LE" 12.17 % *** 1.610229e-15 string_decoder\\string-decoder-create.js n=25000000 encoding="utf-8" 26.49 % *** 5.179343e-44 string_decoder\\string-decoder-create.js n=25000000 encoding="UTF-8" 17.64 % *** 1.119155e-32 string_decoder\\string-decoder-create.js n=25000000 encoding="utf8" 33.97 % *** 2.164914e-43 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=1024 encoding="ascii" -10.28 % *** 4.118098e-43 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=1024 encoding="base64-ascii" -10.85 % *** 2.352498e-64 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=1024 encoding="base64-utf8" -10.11 % *** 2.515007e-49 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=1024 encoding="utf16le" -4.03 % *** 2.609310e-37 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=1024 encoding="utf8" -5.25 % *** 3.511981e-63 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=128 encoding="ascii" -19.03 % *** 6.691114e-43 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=128 encoding="base64-ascii" -18.85 % *** 8.161656e-24 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=128 encoding="base64-utf8" -18.74 % *** 8.300350e-27 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=128 encoding="utf16le" -15.45 % *** 1.551373e-57 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=128 encoding="utf8" -13.16 % *** 6.316570e-62 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=32 encoding="ascii" -20.26 % *** 3.785883e-47 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=32 encoding="base64-ascii" -21.82 % *** 1.009891e-21 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=32 encoding="base64-utf8" -21.91 % *** 3.389575e-20 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=32 encoding="utf16le" -15.73 % *** 3.185635e-44 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=32 encoding="utf8" -27.20 % *** 5.069660e-61 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=4096 encoding="ascii" -7.34 % *** 1.208310e-39 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=4096 encoding="base64-ascii" -7.49 % *** 2.706785e-40 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=4096 encoding="base64-utf8" -7.27 % *** 2.205726e-33 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=4096 encoding="utf16le" -3.41 % *** 1.607691e-15 string_decoder\\string-decoder.js n=250000 chunk=1024 inlen=4096 encoding="utf8" -4.79 % *** 3.066881e-69 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=1024 encoding="ascii" -21.32 % *** 3.470832e-57 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=1024 encoding="base64-ascii" -21.74 % *** 7.859288e-35 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=1024 encoding="base64-utf8" -22.21 % *** 1.199006e-35 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=1024 encoding="utf16le" -12.17 % *** 3.176889e-22 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=1024 encoding="utf8" -16.20 % *** 6.902098e-31 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=128 encoding="ascii" -21.20 % *** 1.196128e-43 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=128 encoding="base64-ascii" -22.98 % *** 7.835172e-36 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=128 encoding="base64-utf8" -21.89 % *** 3.082109e-32 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=128 encoding="utf16le" -13.96 % *** 1.030760e-20 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=128 encoding="utf8" -26.04 % *** 6.023027e-37 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=32 encoding="ascii" -22.78 % *** 4.964699e-53 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=32 encoding="base64-ascii" -24.04 % *** 2.392287e-36 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=32 encoding="base64-utf8" -23.38 % *** 1.614575e-31 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=32 encoding="utf16le" -17.59 % *** 6.662991e-47 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=32 encoding="utf8" -30.77 % *** 1.348067e-69 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=4096 encoding="ascii" -18.28 % *** 2.205989e-24 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=4096 encoding="base64-ascii" -20.96 % *** 7.900781e-24 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=4096 encoding="base64-utf8" -22.17 % *** 9.200040e-52 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=4096 encoding="utf16le" -13.88 % *** 2.685590e-44 string_decoder\\string-decoder.js n=250000 chunk=16 inlen=4096 encoding="utf8" -17.09 % *** 1.771876e-49 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=1024 encoding="ascii" -12.46 % *** 8.386790e-34 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=1024 encoding="base64-ascii" -14.75 % *** 6.154259e-29 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=1024 encoding="base64-utf8" -11.85 % *** 3.647512e-30 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=1024 encoding="utf16le" -7.36 % *** 1.969025e-25 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=1024 encoding="utf8" -4.14 % *** 8.657672e-36 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=128 encoding="ascii" -18.56 % *** 2.216563e-38 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=128 encoding="base64-ascii" -17.95 % *** 1.226298e-20 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=128 encoding="base64-utf8" -18.22 % *** 1.556503e-22 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=128 encoding="utf16le" -15.75 % *** 1.177897e-53 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=128 encoding="utf8" -12.93 % *** 4.922752e-61 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=32 encoding="ascii" -20.00 % *** 2.622663e-47 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=32 encoding="base64-ascii" -22.46 % *** 2.631449e-22 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=32 encoding="base64-utf8" -23.06 % *** 2.441661e-22 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=32 encoding="utf16le" -16.00 % *** 1.075582e-49 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=32 encoding="utf8" -27.23 % *** 1.741069e-66 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=4096 encoding="ascii" -12.18 % *** 2.709551e-37 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=4096 encoding="base64-ascii" -9.53 % *** 5.832544e-21 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=4096 encoding="base64-utf8" -8.51 % *** 5.870005e-27 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=4096 encoding="utf16le" -7.64 % *** 2.962503e-33 string_decoder\\string-decoder.js n=250000 chunk=256 inlen=4096 encoding="utf8" -3.02 % *** 7.767665e-47 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=1024 encoding="ascii" -15.56 % *** 4.858562e-43 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=1024 encoding="base64-ascii" -16.94 % *** 5.797840e-19 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=1024 encoding="base64-utf8" -12.47 % *** 1.226234e-20 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=1024 encoding="utf16le" -9.30 % *** 3.702454e-20 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=1024 encoding="utf8" -10.59 % *** 8.160000e-54 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=128 encoding="ascii" -19.21 % *** 7.353231e-50 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=128 encoding="base64-ascii" -16.99 % *** 8.922750e-18 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=128 encoding="base64-utf8" -14.68 % *** 1.513500e-22 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=128 encoding="utf16le" -16.00 % *** 3.151190e-46 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=128 encoding="utf8" -16.36 % *** 2.746556e-59 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=32 encoding="ascii" -20.88 % *** 2.914962e-33 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=32 encoding="base64-ascii" -23.01 % *** 8.390443e-24 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=32 encoding="base64-utf8" -22.59 % *** 2.732638e-20 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=32 encoding="utf16le" -15.60 % *** 5.365177e-39 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=32 encoding="utf8" -26.52 % *** 8.555508e-38 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=4096 encoding="ascii" -19.69 % *** 1.330018e-38 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=4096 encoding="base64-ascii" -11.96 % *** 6.249688e-17 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=4096 encoding="base64-utf8" -8.68 % *** 5.494369e-11 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=4096 encoding="utf16le" -12.10 % *** 7.708981e-45 string_decoder\\string-decoder.js n=250000 chunk=64 inlen=4096 encoding="utf8" -3.56 % *** 1.850288e-45 ```
timers ``` improvement confidence p.value timers/immediate.js type="breadth" thousands=2000 12.76 % *** 8.348231e-05 timers/immediate.js type="breadth1" thousands=2000 6.83 % *** 3.396593e-04 timers/immediate.js type="breadth4" thousands=2000 1.13 % 6.231323e-01 timers/immediate.js type="clear" thousands=2000 6.40 % *** 1.983798e-04 timers/immediate.js type="depth" thousands=2000 5.43 % *** 3.101314e-05 timers/immediate.js type="depth1" thousands=2000 9.83 % *** 5.083261e-11 timers/set-immediate-breadth-args.js millions=5 -0.12 % 7.798393e-01 timers/set-immediate-breadth.js millions=10 3.89 % *** 7.465471e-15 timers/set-immediate-depth-args.js millions=10 16.38 % *** 1.535860e-20 timers/set-immediate-depth.js millions=10 6.00 % *** 8.826471e-14 timers/timers-breadth.js thousands=500 8.19 % *** 8.195604e-18 timers/timers-cancel-pooled.js thousands=500 0.39 % 6.270987e-01 timers/timers-cancel-unpooled.js thousands=100 -0.17 % *** 9.034505e-04 timers/timers-depth.js thousands=1 -0.25 % 7.790906e-01 timers/timers-insert-pooled.js thousands=500 -11.42 % *** 5.366038e-36 timers/timers-insert-unpooled.js thousands=100 -5.00 % *** 4.390698e-11 timers/timers-timeout-pooled.js thousands=500 90.99 % *** 1.828523e-24 ```
timers (windows) ``` improvement confidence p.value timers\\immediate.js type="breadth" thousands=2000 13.61 % *** 9.040825e-20 timers\\immediate.js type="breadth1" thousands=2000 11.29 % *** 3.955783e-19 timers\\immediate.js type="breadth4" thousands=2000 7.33 % *** 7.727951e-22 timers\\immediate.js type="clear" thousands=2000 20.89 % *** 2.369455e-35 timers\\immediate.js type="depth" thousands=2000 6.78 % *** 1.987398e-38 timers\\immediate.js type="depth1" thousands=2000 7.84 % *** 2.557152e-46 timers\\set-immediate-breadth-args.js millions=5 -4.05 % *** 4.449593e-05 timers\\set-immediate-breadth.js millions=10 16.72 % *** 1.136465e-43 timers\\set-immediate-depth-args.js millions=10 11.82 % *** 5.897423e-39 timers\\set-immediate-depth.js millions=10 1.77 % *** 6.841528e-10 timers\\timers-breadth.js thousands=500 3.36 % *** 4.310861e-24 timers\\timers-cancel-pooled.js thousands=500 1.03 % 1.787179e-01 timers\\timers-cancel-unpooled.js thousands=100 -0.44 % 7.711119e-01 timers\\timers-depth.js thousands=1 0.24 % ** 1.072972e-03 timers\\timers-insert-pooled.js thousands=500 -4.06 % *** 7.462975e-18 timers\\timers-insert-unpooled.js thousands=100 -6.09 % *** 7.852493e-37 timers\\timers-timeout-pooled.js thousands=500 121.48 % *** 4.629659e-30 ```
tls ``` improvement confidence p.value tls\\convertprotocols.js n=1 -1.28 % 3.987238e-01 tls\\convertprotocols.js n=50000 -7.17 % *** 1.529057e-17 tls\\throughput.js size=1024 type="asc" dur=5 -0.46 % *** 2.143612e-04 tls\\throughput.js size=1024 type="buf" dur=5 -0.54 % *** 2.668916e-07 tls\\throughput.js size=1024 type="utf" dur=5 -0.53 % *** 2.389609e-06 tls\\throughput.js size=1048576 type="asc" dur=5 -0.53 % *** 1.990643e-09 tls\\throughput.js size=1048576 type="buf" dur=5 -0.52 % *** 1.093546e-12 tls\\throughput.js size=1048576 type="utf" dur=5 -0.80 % *** 3.224579e-13 tls\\throughput.js size=2 type="asc" dur=5 4.04 % *** 7.047651e-15 tls\\throughput.js size=2 type="buf" dur=5 3.99 % *** 6.373564e-12 tls\\throughput.js size=2 type="utf" dur=5 -0.14 % 6.862909e-01 tls\\tls-connect.js dur=5 concurrency=1 -1.55 % *** 1.795457e-07 tls\\tls-connect.js dur=5 concurrency=10 -2.21 % *** 4.948116e-13 ```
url ``` improvement confidence p.value url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="auth" -34.68 % *** 1.134414e-42 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="dot" -36.20 % *** 3.690335e-38 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="file" -37.51 % *** 1.797921e-72 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="idn" -0.14 % 7.634703e-01 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="javascript" -37.03 % *** 1.103488e-61 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="long" -35.99 % *** 7.285023e-63 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="percent" -37.05 % *** 1.104747e-33 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="short" -36.11 % *** 8.727093e-62 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="legacy" type="ws" -35.67 % *** 1.944222e-38 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="auth" -48.61 % *** 7.992448e-58 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="dot" -45.38 % *** 3.662469e-33 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="file" -47.54 % *** 9.435727e-33 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="idn" -65.33 % *** 7.051892e-87 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="javascript" -69.68 % *** 1.603037e-34 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="long" -43.30 % *** 3.376686e-56 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="percent" -61.89 % *** 2.388693e-38 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="short" -44.23 % *** 2.510468e-27 url\\legacy-vs-whatwg-url-get-prop.js n=100000 method="whatwg" type="ws" -55.04 % *** 4.578596e-55 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="auth" -12.45 % *** 1.711388e-40 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="dot" 0.45 % 1.882933e-01 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="file" 98.08 % *** 1.621694e-64 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="idn" 1.15 % *** 4.218465e-04 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="javascript" 13.76 % *** 1.356816e-50 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="long" 2.27 % *** 1.409552e-14 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="percent" 96.61 % *** 1.899178e-82 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="short" 0.80 % * 1.239411e-02 url\\legacy-vs-whatwg-url-parse.js n=100000 method="legacy" type="ws" 0.85 % ** 9.112197e-03 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="auth" 2.50 % *** 7.503010e-11 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="dot" 7.52 % *** 8.455763e-38 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="file" 7.90 % *** 1.526125e-36 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="idn" 5.55 % *** 2.489551e-43 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="javascript" 12.64 % *** 2.417359e-48 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="long" 6.94 % *** 2.121187e-55 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="percent" 7.66 % *** 5.306395e-46 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="short" 7.11 % *** 2.798048e-42 url\\legacy-vs-whatwg-url-parse.js n=100000 method="whatwg" type="ws" 6.11 % *** 2.729744e-37 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="altspaces" -14.68 % *** 1.929322e-29 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="encodefake" -16.68 % *** 7.459998e-34 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="encodelast" -13.59 % *** 7.181302e-34 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="encodemany" -6.63 % *** 1.324676e-23 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="manyblankpairs" -61.45 % *** 6.221670e-29 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="manypairs" 69.11 % *** 9.437955e-54 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="multicharsep" -13.70 % *** 8.321268e-48 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="multivalue" -11.17 % *** 4.977578e-26 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="multivaluemany" -16.96 % *** 1.765300e-30 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="legacy" type="noencode" -15.45 % *** 3.347243e-36 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="altspaces" -13.75 % *** 1.404840e-51 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="encodefake" -10.75 % *** 5.581615e-23 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="encodelast" -9.40 % *** 2.358757e-32 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="encodemany" -2.84 % *** 2.638015e-10 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="manyblankpairs" -31.54 % *** 3.377100e-53 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="manypairs" 35.70 % *** 4.250240e-50 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="multicharsep" -9.30 % *** 4.442361e-21 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="multivalue" -5.55 % *** 1.122990e-26 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="multivaluemany" -13.67 % *** 8.816168e-40 url\\legacy-vs-whatwg-url-searchparams-parse.js n=100000 method="whatwg" type="noencode" -11.04 % *** 8.930977e-22 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="altspaces" -38.20 % *** 1.371476e-40 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="encodefake" -29.33 % *** 3.796764e-41 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="encodelast" -17.64 % *** 9.479205e-38 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="encodemany" -15.80 % *** 9.898271e-28 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="manyblankpairs" -25.85 % *** 9.208104e-36 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="manypairs" -7.40 % *** 2.529692e-26 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="multicharsep" -17.07 % *** 1.035808e-29 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="multivalue" -13.49 % *** 1.196666e-31 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="multivaluemany" -9.98 % *** 4.374953e-32 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="legacy" type="noencode" -17.37 % *** 2.798452e-41 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="altspaces" -34.87 % *** 2.000988e-44 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="encodefake" -24.12 % *** 9.944973e-42 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="encodelast" -2.28 % *** 8.334588e-07 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="encodemany" -2.31 % *** 6.106178e-05 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="manyblankpairs" -18.84 % *** 3.308262e-21 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="manypairs" -2.90 % *** 1.820190e-08 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="multicharsep" -2.40 % *** 2.367131e-05 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="multivalue" -4.30 % *** 3.218007e-12 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="multivaluemany" -4.80 % *** 2.103796e-14 url\\legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method="whatwg" type="noencode" -2.66 % *** 2.926273e-07 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="auth" -51.73 % *** 4.379512e-51 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="dot" -5.18 % *** 1.735350e-24 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="file" -5.89 % *** 1.226933e-20 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="idn" -2.28 % *** 2.800866e-10 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="javascript" 13.51 % *** 4.329471e-45 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="long" -12.73 % *** 2.274410e-27 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="percent" -4.31 % *** 3.444205e-13 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="short" -3.60 % *** 1.365628e-13 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="legacy" type="ws" -8.52 % *** 1.231807e-38 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="auth" -27.34 % *** 5.465109e-50 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="dot" -28.28 % *** 1.288086e-58 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="file" -35.34 % *** 4.934594e-74 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="idn" -30.77 % *** 3.725545e-59 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="javascript" -42.18 % *** 8.087409e-58 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="long" -34.16 % *** 2.065759e-56 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="percent" -31.25 % *** 6.367013e-51 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="short" -33.69 % *** 6.343895e-52 url\\legacy-vs-whatwg-url-serialize.js n=100000 method="whatwg" type="ws" -30.20 % *** 2.051514e-52 url\\url-format.js n=25000000 type="file" 2.21 % *** 1.136270e-07 url\\url-format.js n=25000000 type="slashes" 10.82 % *** 1.191810e-39 url\\url-resolve.js n=100000 path="down" href="auth" -3.12 % *** 1.876031e-11 url\\url-resolve.js n=100000 path="down" href="dot" 0.66 % * 4.852259e-02 url\\url-resolve.js n=100000 path="down" href="file" 57.66 % *** 2.305978e-79 url\\url-resolve.js n=100000 path="down" href="idn" 0.68 % ** 6.882208e-03 url\\url-resolve.js n=100000 path="down" href="javascript" 25.13 % *** 1.492438e-55 url\\url-resolve.js n=100000 path="down" href="long" -1.08 % *** 1.791669e-06 url\\url-resolve.js n=100000 path="down" href="noscheme" -8.51 % *** 5.063194e-18 url\\url-resolve.js n=100000 path="down" href="percent" 59.67 % *** 5.046567e-81 url\\url-resolve.js n=100000 path="down" href="short" 2.48 % *** 3.496543e-10 url\\url-resolve.js n=100000 path="down" href="ws" 17.53 % *** 1.419044e-50 url\\url-resolve.js n=100000 path="foo/bar" href="auth" -7.60 % *** 2.216584e-21 url\\url-resolve.js n=100000 path="foo/bar" href="dot" 1.60 % *** 1.993903e-05 url\\url-resolve.js n=100000 path="foo/bar" href="file" 55.15 % *** 2.840973e-81 url\\url-resolve.js n=100000 path="foo/bar" href="idn" -1.34 % *** 3.903494e-04 url\\url-resolve.js n=100000 path="foo/bar" href="javascript" 25.80 % *** 1.284336e-72 url\\url-resolve.js n=100000 path="foo/bar" href="long" -4.51 % *** 5.230985e-31 url\\url-resolve.js n=100000 path="foo/bar" href="noscheme" -8.54 % *** 7.546034e-23 url\\url-resolve.js n=100000 path="foo/bar" href="percent" 54.50 % *** 1.572397e-81 url\\url-resolve.js n=100000 path="foo/bar" href="short" -1.24 % ** 3.113847e-03 url\\url-resolve.js n=100000 path="foo/bar" href="ws" 17.65 % *** 2.496146e-49 url\\url-resolve.js n=100000 path="sibling" href="auth" -2.36 % *** 4.817946e-08 url\\url-resolve.js n=100000 path="sibling" href="dot" 1.18 % ** 1.966300e-03 url\\url-resolve.js n=100000 path="sibling" href="file" 63.13 % *** 1.468631e-87 url\\url-resolve.js n=100000 path="sibling" href="idn" 0.09 % 7.115274e-01 url\\url-resolve.js n=100000 path="sibling" href="javascript" 23.15 % *** 2.968431e-52 url\\url-resolve.js n=100000 path="sibling" href="long" -1.46 % *** 9.864590e-06 url\\url-resolve.js n=100000 path="sibling" href="noscheme" -7.02 % *** 6.240868e-22 url\\url-resolve.js n=100000 path="sibling" href="percent" 63.87 % *** 5.207680e-87 url\\url-resolve.js n=100000 path="sibling" href="short" 0.31 % 3.489059e-01 url\\url-resolve.js n=100000 path="sibling" href="ws" 16.66 % *** 6.019323e-55 url\\url-resolve.js n=100000 path="up" href="auth" -3.18 % *** 6.211091e-14 url\\url-resolve.js n=100000 path="up" href="dot" 2.48 % *** 2.235447e-11 url\\url-resolve.js n=100000 path="up" href="file" 64.16 % *** 1.120646e-60 url\\url-resolve.js n=100000 path="up" href="idn" 2.05 % *** 7.035095e-11 url\\url-resolve.js n=100000 path="up" href="javascript" 23.82 % *** 1.183798e-55 url\\url-resolve.js n=100000 path="up" href="long" -0.12 % 5.914309e-01 url\\url-resolve.js n=100000 path="up" href="noscheme" -3.24 % *** 5.245393e-13 url\\url-resolve.js n=100000 path="up" href="percent" 62.59 % *** 9.910767e-85 url\\url-resolve.js n=100000 path="up" href="short" 0.86 % * 1.166051e-02 url\\url-resolve.js n=100000 path="up" href="ws" 17.43 % *** 2.954736e-63 url\\url-resolve.js n=100000 path="withscheme" href="auth" -1.94 % *** 3.003200e-05 url\\url-resolve.js n=100000 path="withscheme" href="dot" 3.15 % *** 8.889146e-11 url\\url-resolve.js n=100000 path="withscheme" href="file" 80.29 % *** 2.949170e-80 url\\url-resolve.js n=100000 path="withscheme" href="idn" 4.70 % *** 1.548568e-23 url\\url-resolve.js n=100000 path="withscheme" href="javascript" 0.93 % * 1.054471e-02 url\\url-resolve.js n=100000 path="withscheme" href="long" 4.39 % *** 1.507388e-21 url\\url-resolve.js n=100000 path="withscheme" href="noscheme" -4.35 % *** 2.632984e-12 url\\url-resolve.js n=100000 path="withscheme" href="percent" 78.78 % *** 2.885921e-85 url\\url-resolve.js n=100000 path="withscheme" href="short" 3.95 % *** 6.668780e-13 url\\url-resolve.js n=100000 path="withscheme" href="ws" 2.31 % *** 9.448911e-11 url\\url-searchparams-iteration.js n=1000000 method="forEach" -6.36 % *** 6.228921e-23 url\\url-searchparams-iteration.js n=1000000 method="iterator" 44.89 % *** 2.507953e-75 url\\url-searchparams-read.js n=1000000 param="nonexistent" method="get" -2.40 % *** 6.349718e-09 url\\url-searchparams-read.js n=1000000 param="nonexistent" method="getAll" -5.26 % *** 3.396310e-20 url\\url-searchparams-read.js n=1000000 param="nonexistent" method="has" 2.03 % *** 2.035114e-04 url\\url-searchparams-read.js n=1000000 param="one" method="get" -6.95 % *** 5.136380e-17 url\\url-searchparams-read.js n=1000000 param="one" method="getAll" -1.00 % *** 1.246260e-04 url\\url-searchparams-read.js n=1000000 param="one" method="has" -5.98 % *** 4.260513e-24 url\\url-searchparams-read.js n=1000000 param="three" method="get" -4.27 % *** 1.108214e-18 url\\url-searchparams-read.js n=1000000 param="three" method="getAll" -6.90 % *** 1.815173e-23 url\\url-searchparams-read.js n=1000000 param="three" method="has" 0.00 % 9.966544e-01 url\\url-searchparams-read.js n=1000000 param="two" method="get" -5.57 % *** 2.739023e-16 url\\url-searchparams-read.js n=1000000 param="two" method="getAll" -5.53 % *** 7.586545e-21 url\\url-searchparams-read.js n=1000000 param="two" method="has" -1.92 % *** 6.239710e-08 url\\url-searchparams-sort.js n=1000000 type="almostsorted" 2.35 % *** 1.322935e-05 url\\url-searchparams-sort.js n=1000000 type="empty" -21.89 % *** 2.378564e-48 url\\url-searchparams-sort.js n=1000000 type="long" 5.88 % *** 9.087719e-17 url\\url-searchparams-sort.js n=1000000 type="random" 2.00 % 5.024592e-02 url\\url-searchparams-sort.js n=1000000 type="reversed" 2.29 % *** 5.462454e-12 url\\url-searchparams-sort.js n=1000000 type="short" 1.89 % *** 2.360603e-08 url\\url-searchparams-sort.js n=1000000 type="sorted" 5.70 % *** 2.041392e-23 url\\usvstring.js n=50000000 input="allinvalid" -18.33 % *** 7.074157e-42 url\\usvstring.js n=50000000 input="nonstring" 3.36 % *** 2.835381e-26 url\\usvstring.js n=50000000 input="someinvalid" -20.13 % *** 3.506343e-41 url\\usvstring.js n=50000000 input="valid" -17.29 % *** 7.099021e-61 url\\usvstring.js n=50000000 input="validsurr" -6.33 % *** 1.076393e-44 url\\whatwg-url-idna.js n=5000000 to="ascii" input="all" -6.92 % *** 1.017367e-54 url\\whatwg-url-idna.js n=5000000 to="ascii" input="empty" -45.72 % *** 2.164783e-51 url\\whatwg-url-idna.js n=5000000 to="ascii" input="none" -16.72 % *** 8.775029e-40 url\\whatwg-url-idna.js n=5000000 to="ascii" input="nonstring" -25.84 % *** 1.076997e-58 url\\whatwg-url-idna.js n=5000000 to="ascii" input="some" -6.34 % *** 1.003916e-38 url\\whatwg-url-idna.js n=5000000 to="unicode" input="all" 4.72 % *** 1.042363e-48 url\\whatwg-url-idna.js n=5000000 to="unicode" input="empty" -45.95 % *** 5.020348e-42 url\\whatwg-url-idna.js n=5000000 to="unicode" input="none" -7.51 % *** 1.010640e-34 url\\whatwg-url-idna.js n=5000000 to="unicode" input="nonstring" -27.50 % *** 4.037907e-63 url\\whatwg-url-idna.js n=5000000 to="unicode" input="some" 3.37 % *** 6.093441e-47 url\\whatwg-url-properties.js n=10000 prop="hash" input="auth" -13.05 % *** 2.634506e-30 url\\whatwg-url-properties.js n=10000 prop="hash" input="dot" -12.87 % *** 3.142510e-34 url\\whatwg-url-properties.js n=10000 prop="hash" input="file" -12.25 % *** 1.737973e-35 url\\whatwg-url-properties.js n=10000 prop="hash" input="idn" -12.61 % *** 3.513764e-31 url\\whatwg-url-properties.js n=10000 prop="hash" input="javascript" 50.86 % *** 1.262411e-51 url\\whatwg-url-properties.js n=10000 prop="hash" input="long" -11.76 % *** 1.310080e-35 url\\whatwg-url-properties.js n=10000 prop="hash" input="percent" -13.48 % *** 6.087931e-33 url\\whatwg-url-properties.js n=10000 prop="hash" input="short" -12.11 % *** 1.362106e-30 url\\whatwg-url-properties.js n=10000 prop="hash" input="ws" -11.87 % *** 1.085072e-38 url\\whatwg-url-properties.js n=10000 prop="host" input="auth" -4.81 % *** 8.595136e-17 url\\whatwg-url-properties.js n=10000 prop="host" input="dot" -4.59 % *** 1.993239e-17 url\\whatwg-url-properties.js n=10000 prop="host" input="file" -5.18 % *** 1.870640e-21 url\\whatwg-url-properties.js n=10000 prop="host" input="idn" -4.32 % *** 3.969293e-17 url\\whatwg-url-properties.js n=10000 prop="host" input="javascript" 38.02 % *** 7.908134e-24 url\\whatwg-url-properties.js n=10000 prop="host" input="long" -3.15 % *** 4.817165e-16 url\\whatwg-url-properties.js n=10000 prop="host" input="percent" -5.10 % *** 2.164275e-21 url\\whatwg-url-properties.js n=10000 prop="host" input="short" -4.08 % *** 1.470347e-16 url\\whatwg-url-properties.js n=10000 prop="host" input="ws" -4.67 % *** 4.359596e-17 url\\whatwg-url-properties.js n=10000 prop="hostname" input="auth" -2.99 % *** 9.807744e-10 url\\whatwg-url-properties.js n=10000 prop="hostname" input="dot" -4.26 % *** 4.912310e-12 url\\whatwg-url-properties.js n=10000 prop="hostname" input="file" -3.11 % *** 6.699793e-07 url\\whatwg-url-properties.js n=10000 prop="hostname" input="idn" -4.22 % *** 3.396294e-13 url\\whatwg-url-properties.js n=10000 prop="hostname" input="javascript" 49.62 % *** 1.981183e-37 url\\whatwg-url-properties.js n=10000 prop="hostname" input="long" -3.80 % *** 1.562894e-10 url\\whatwg-url-properties.js n=10000 prop="hostname" input="percent" -4.51 % *** 1.431079e-15 url\\whatwg-url-properties.js n=10000 prop="hostname" input="short" -3.87 % *** 2.053252e-11 url\\whatwg-url-properties.js n=10000 prop="hostname" input="ws" -3.86 % *** 1.262418e-12 url\\whatwg-url-properties.js n=10000 prop="href" input="auth" -4.79 % *** 4.013623e-14 url\\whatwg-url-properties.js n=10000 prop="href" input="dot" -6.14 % *** 2.150363e-19 url\\whatwg-url-properties.js n=10000 prop="href" input="file" -5.48 % *** 1.590497e-18 url\\whatwg-url-properties.js n=10000 prop="href" input="idn" -5.34 % *** 6.377817e-16 url\\whatwg-url-properties.js n=10000 prop="href" input="javascript" -5.73 % *** 5.289524e-22 url\\whatwg-url-properties.js n=10000 prop="href" input="long" -5.19 % *** 2.087097e-17 url\\whatwg-url-properties.js n=10000 prop="href" input="percent" -5.33 % *** 7.574755e-17 url\\whatwg-url-properties.js n=10000 prop="href" input="short" -5.84 % *** 1.909005e-20 url\\whatwg-url-properties.js n=10000 prop="href" input="ws" -4.79 % *** 3.236116e-16 url\\whatwg-url-properties.js n=10000 prop="origin" input="auth" -7.60 % *** 2.831374e-08 url\\whatwg-url-properties.js n=10000 prop="origin" input="dot" -6.90 % *** 4.798042e-17 url\\whatwg-url-properties.js n=10000 prop="origin" input="file" 6.93 % *** 8.729391e-09 url\\whatwg-url-properties.js n=10000 prop="origin" input="idn" 3.23 % *** 1.238775e-30 url\\whatwg-url-properties.js n=10000 prop="origin" input="javascript" 6.81 % *** 4.992687e-07 url\\whatwg-url-properties.js n=10000 prop="origin" input="long" -8.67 % *** 8.268461e-31 url\\whatwg-url-properties.js n=10000 prop="origin" input="percent" -2.96 % *** 1.995345e-11 url\\whatwg-url-properties.js n=10000 prop="origin" input="short" -9.09 % *** 1.326430e-39 url\\whatwg-url-properties.js n=10000 prop="origin" input="ws" -9.85 % *** 2.241308e-25 url\\whatwg-url-properties.js n=10000 prop="password" input="auth" 18.63 % *** 5.568602e-25 url\\whatwg-url-properties.js n=10000 prop="password" input="dot" 15.84 % *** 9.368072e-31 url\\whatwg-url-properties.js n=10000 prop="password" input="file" 86.69 % *** 1.938197e-34 url\\whatwg-url-properties.js n=10000 prop="password" input="idn" 15.81 % *** 2.129617e-30 url\\whatwg-url-properties.js n=10000 prop="password" input="javascript" 88.89 % *** 2.679697e-64 url\\whatwg-url-properties.js n=10000 prop="password" input="long" 16.81 % *** 5.568713e-29 url\\whatwg-url-properties.js n=10000 prop="password" input="percent" 15.69 % *** 2.482159e-23 url\\whatwg-url-properties.js n=10000 prop="password" input="short" 17.05 % *** 3.539161e-28 url\\whatwg-url-properties.js n=10000 prop="password" input="ws" 15.76 % *** 4.664430e-27 url\\whatwg-url-properties.js n=10000 prop="pathname" input="auth" -12.64 % *** 5.152179e-35 url\\whatwg-url-properties.js n=10000 prop="pathname" input="dot" -9.69 % *** 3.694581e-28 url\\whatwg-url-properties.js n=10000 prop="pathname" input="file" -9.73 % *** 7.444527e-29 url\\whatwg-url-properties.js n=10000 prop="pathname" input="idn" -10.30 % *** 2.487335e-35 url\\whatwg-url-properties.js n=10000 prop="pathname" input="javascript" 15.95 % *** 1.536945e-24 url\\whatwg-url-properties.js n=10000 prop="pathname" input="long" -10.00 % *** 1.407055e-31 url\\whatwg-url-properties.js n=10000 prop="pathname" input="percent" -10.80 % *** 6.089620e-29 url\\whatwg-url-properties.js n=10000 prop="pathname" input="short" -10.44 % *** 1.002774e-29 url\\whatwg-url-properties.js n=10000 prop="pathname" input="ws" -9.63 % *** 1.597101e-32 url\\whatwg-url-properties.js n=10000 prop="port" input="auth" -2.29 % *** 5.943297e-08 url\\whatwg-url-properties.js n=10000 prop="port" input="dot" -3.78 % *** 2.046475e-16 url\\whatwg-url-properties.js n=10000 prop="port" input="file" 69.79 % *** 2.031454e-46 url\\whatwg-url-properties.js n=10000 prop="port" input="idn" -4.19 % *** 1.942649e-15 url\\whatwg-url-properties.js n=10000 prop="port" input="javascript" 71.72 % *** 3.124656e-52 url\\whatwg-url-properties.js n=10000 prop="port" input="long" -4.53 % *** 8.561101e-18 url\\whatwg-url-properties.js n=10000 prop="port" input="percent" -3.07 % *** 4.260172e-12 url\\whatwg-url-properties.js n=10000 prop="port" input="short" -3.25 % *** 5.006745e-16 url\\whatwg-url-properties.js n=10000 prop="port" input="ws" -4.20 % *** 3.139579e-16 url\\whatwg-url-properties.js n=10000 prop="protocol" input="auth" -7.56 % *** 6.618186e-18 url\\whatwg-url-properties.js n=10000 prop="protocol" input="dot" -6.44 % *** 2.919348e-14 url\\whatwg-url-properties.js n=10000 prop="protocol" input="file" -6.11 % *** 1.796060e-16 url\\whatwg-url-properties.js n=10000 prop="protocol" input="idn" -6.27 % *** 6.620996e-15 url\\whatwg-url-properties.js n=10000 prop="protocol" input="javascript" -4.14 % *** 3.200331e-11 url\\whatwg-url-properties.js n=10000 prop="protocol" input="long" -4.12 % *** 2.973464e-04 url\\whatwg-url-properties.js n=10000 prop="protocol" input="percent" -6.37 % *** 3.744318e-16 url\\whatwg-url-properties.js n=10000 prop="protocol" input="short" -5.61 % *** 4.764372e-13 url\\whatwg-url-properties.js n=10000 prop="protocol" input="ws" -4.82 % *** 5.709715e-14 url\\whatwg-url-properties.js n=10000 prop="search" input="auth" 3.56 % *** 2.782816e-08 url\\whatwg-url-properties.js n=10000 prop="search" input="dot" 2.82 % *** 2.137876e-07 url\\whatwg-url-properties.js n=10000 prop="search" input="file" 1.59 % 7.033034e-02 url\\whatwg-url-properties.js n=10000 prop="search" input="idn" 1.50 % ** 9.755151e-03 url\\whatwg-url-properties.js n=10000 prop="search" input="javascript" 1.18 % 7.517150e-02 url\\whatwg-url-properties.js n=10000 prop="search" input="long" 3.28 % *** 6.054618e-07 url\\whatwg-url-properties.js n=10000 prop="search" input="percent" 3.34 % *** 3.786630e-09 url\\whatwg-url-properties.js n=10000 prop="search" input="short" 2.76 % *** 1.575200e-04 url\\whatwg-url-properties.js n=10000 prop="search" input="ws" 2.06 % ** 2.509838e-03 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="auth" 170.44 % *** 4.234964e-71 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="dot" 164.03 % *** 9.941064e-68 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="file" 166.02 % *** 2.458205e-62 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="idn" 165.76 % *** 2.372835e-40 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="javascript" 167.64 % *** 2.012943e-55 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="long" 163.47 % *** 1.100228e-36 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="percent" 162.82 % *** 1.198895e-41 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="short" 170.57 % *** 2.259498e-74 url\\whatwg-url-properties.js n=10000 prop="searchParams" input="ws" 165.36 % *** 5.683900e-46 url\\whatwg-url-properties.js n=10000 prop="username" input="auth" 19.15 % *** 2.575329e-34 url\\whatwg-url-properties.js n=10000 prop="username" input="dot" 17.37 % *** 3.630928e-27 url\\whatwg-url-properties.js n=10000 prop="username" input="file" 83.67 % *** 6.575456e-46 url\\whatwg-url-properties.js n=10000 prop="username" input="idn" 17.98 % *** 5.385188e-33 url\\whatwg-url-properties.js n=10000 prop="username" input="javascript" 82.92 % *** 3.592966e-35 url\\whatwg-url-properties.js n=10000 prop="username" input="long" 18.19 % *** 2.593662e-36 url\\whatwg-url-properties.js n=10000 prop="username" input="percent" 18.24 % *** 8.653417e-39 url\\whatwg-url-properties.js n=10000 prop="username" input="short" 15.88 % *** 5.294615e-27 url\\whatwg-url-properties.js n=10000 prop="username" input="ws" 17.22 % *** 6.998943e-27 ```
util ``` improvement confidence p.value util\\format.js type="no-replace" n=1000000 3.52 % *** 2.300325e-20 util\\format.js type="number" n=1000000 -72.27 % *** 1.272147e-49 util\\format.js type="object" n=1000000 -31.42 % *** 6.317101e-45 util\\format.js type="string" n=1000000 -72.66 % *** 8.318604e-55 util\\format.js type="unknown" n=1000000 -65.93 % *** 5.048714e-92 util\\inspect-proxy.js n=1000000 v=1 -0.82 % *** 8.354899e-04 util\\inspect-proxy.js n=1000000 v=2 0.43 % 1.797406e-01 util\\inspect.js n=5000000 4.30 % *** 3.568230e-27 util\\normalize-encoding.js n=100000 input="" -57.84 % *** 5.757415e-36 util\\normalize-encoding.js n=100000 input="[]" -8.83 % *** 3.635484e-21 util\\normalize-encoding.js n=100000 input="1" -20.57 % *** 3.098413e-44 util\\normalize-encoding.js n=100000 input="base64" -36.86 % *** 4.703203e-60 util\\normalize-encoding.js n=100000 input="BASE64" -31.97 % *** 5.454870e-58 util\\normalize-encoding.js n=100000 input="binary" -38.93 % *** 2.731996e-35 util\\normalize-encoding.js n=100000 input="BINARY" -32.30 % *** 1.343991e-45 util\\normalize-encoding.js n=100000 input="false" -59.39 % *** 1.940626e-48 util\\normalize-encoding.js n=100000 input="foo" -33.22 % *** 4.522212e-59 util\\normalize-encoding.js n=100000 input="group_common" -33.62 % *** 1.910655e-43 util\\normalize-encoding.js n=100000 input="group_misc" -18.14 % *** 4.468980e-41 util\\normalize-encoding.js n=100000 input="group_uncommon" -38.04 % *** 4.374311e-40 util\\normalize-encoding.js n=100000 input="group_upper" -19.29 % *** 1.042609e-25 util\\normalize-encoding.js n=100000 input="hex" -35.69 % *** 1.748319e-58 util\\normalize-encoding.js n=100000 input="HEX" -32.11 % *** 5.283979e-60 util\\normalize-encoding.js n=100000 input="latin1" -44.70 % *** 6.491027e-53 util\\normalize-encoding.js n=100000 input="ucs2" -45.57 % *** 9.186528e-50 util\\normalize-encoding.js n=100000 input="UCS2" -37.59 % *** 9.180225e-45 util\\normalize-encoding.js n=100000 input="undefined" -59.37 % *** 4.134435e-38 util\\normalize-encoding.js n=100000 input="utf-16le" -44.90 % *** 7.891071e-50 util\\normalize-encoding.js n=100000 input="UTF-16LE" -35.28 % *** 3.941014e-48 util\\normalize-encoding.js n=100000 input="utf-8" -49.98 % *** 2.161624e-54 util\\normalize-encoding.js n=100000 input="utF-8" -33.75 % *** 9.738238e-48 util\\normalize-encoding.js n=100000 input="uTf-8" -33.67 % *** 1.084618e-36 util\\normalize-encoding.js n=100000 input="UTF-8" -35.61 % *** 9.109863e-50 util\\normalize-encoding.js n=100000 input="utf16le" -46.45 % *** 1.365423e-44 util\\normalize-encoding.js n=100000 input="UTF16LE" -34.85 % *** 1.335203e-45 util\\normalize-encoding.js n=100000 input="utf8" -50.38 % *** 1.338962e-58 util\\normalize-encoding.js n=100000 input="Utf8" -37.45 % *** 1.124196e-53 util\\normalize-encoding.js n=100000 input="UTF8" -38.18 % *** 2.279434e-58 ```
vm ``` improvement confidence p.value vm/run-in-context.js withSigintListener=0 breakOnSigint=0 n=200000 -1.69 % 1.722634e-01 vm/run-in-context.js withSigintListener=0 breakOnSigint=1 n=200000 0.06 % 9.724491e-01 vm/run-in-context.js withSigintListener=1 breakOnSigint=0 n=200000 -3.25 % *** 9.922300e-04 vm/run-in-context.js withSigintListener=1 breakOnSigint=1 n=200000 0.36 % 7.734769e-01 vm/run-in-this-context.js withSigintListener=0 breakOnSigint=0 n=200000 -3.81 % *** 1.130806e-05 vm/run-in-this-context.js withSigintListener=0 breakOnSigint=1 n=200000 -1.43 % 2.500253e-01 vm/run-in-this-context.js withSigintListener=1 breakOnSigint=0 n=200000 -4.65 % *** 4.163715e-08 vm/run-in-this-context.js withSigintListener=1 breakOnSigint=1 n=200000 0.77 % 5.442813e-01 ```
vm (windows) ``` improvement confidence p.value vm\\run-in-context.js withSigintListener=0 breakOnSigint=0 n=1 -0.96 % 5.105984e-01 vm\\run-in-context.js withSigintListener=0 breakOnSigint=1 n=1 -4.87 % * 4.596951e-02 vm\\run-in-context.js withSigintListener=1 breakOnSigint=0 n=1 3.44 % 1.442365e-01 vm\\run-in-context.js withSigintListener=1 breakOnSigint=1 n=1 14.86 % *** 1.086548e-06 vm\\run-in-this-context.js withSigintListener=0 breakOnSigint=0 n=1 -4.59 % *** 6.585714e-05 vm\\run-in-this-context.js withSigintListener=0 breakOnSigint=1 n=1 70.57 % *** 1.027894e-19 vm\\run-in-this-context.js withSigintListener=1 breakOnSigint=0 n=1 -5.60 % *** 2.006588e-07 vm\\run-in-this-context.js withSigintListener=1 breakOnSigint=1 n=1 33.06 % *** 6.418536e-23 ```

I draw your attention particularly to buffers, events, http (!!), querystring, streams, string_decoder, url, util where we have significant losses. These all go to the core competences of Node and you can imagine the articles and blog posts about how far 8.0 LTS regressed.

We do have a couple of wins, es and timers in particular. The gains in es point the way toward what TurboFanScript might look like, or perhaps these are just doing a bit of catch-up on existing ES3/5 perf.

There is https://benchmarking.nodejs.org/, but we have a long way to go before it helps answer these kinds of questions. Currently they are mostly microbenchmarks too, plus AcmeAir (which is a questionable representation of real-world Node IMO) and then there's an Octane benchmark down the bottom where master has a non-trivial dip over 8.x. @nodejs/benchmarking may be able to speak with more authority to the representative nature of all those graphs though.

So, the basic question is what to do with 5.9+? We could go ahead and put it in 8.x. We could wait till 6.0 or 6.1 to do it. We could defer the upgrade till 9.x. But how do we go about answering this question given the complex dependencies (mainly re LTS)?

My personal inclination is to defer till 9.x so we have 2 full cycles to pick up the pieces before an LTS (similar strategy that Ubuntu has pulled off with its major reworks and component replacements—conservative in the LTS branches to lessen potential breakage and make support easier, then liberal in the in-between).

Can others please present alternative proposals with justifications and/or framing?

bmeurer commented 7 years ago

Nice, that was quick :-)

MylesBorins commented 7 years ago

I want to chime in that focusing the decision primarily on performance at this point seems to be missing the point

A large portion of the decision was made due to the backporting and security concerns of sticking with the old pipeline for LTS. It is important that we do not lose sight of those challenges while making the decision.

While performance may not be at 100% of the old pipeline, this can improve over the 30 months of LTS. We will be unable to improve the security story or keep up with backports if we do not upgrade

edit: removed disingenuous as it was harsh

bmeurer commented 7 years ago

cc @natorion

mhdawson commented 7 years ago

I agree that performance does not necessarily have to be at 100% but I think @rvagg (sorry if I'm mis-interpreting) is saying that we need data to be able to make an informed decision which I agree with.

It is important to have enough data so that we can make an informed decision and be able to set expectations. If we think the right decision is to take a 20% performance hit (just an example not saying this is the case) and then improve over the LTS cycle that may be ok provided we communicate that ahead of time. On the other hand if don't have any idea what that impact is and end users discover a large performance regression in the LTS line that may impact confidence in the project.

addaleax commented 7 years ago

@mhdawson Just so we’re on the same page, what I understand Myles as saying, and what I understood to be the outcome https://github.com/nodejs/CTC/issues/99 and all prior discussion that we had before this issue was opened, is that there are other very important factors that play into this decision that aren’t even related to performance, such as the impact it has on even just our ability to support Node 8 for the next 2 years.

That being said: We have zero indication that real-world applications perform worse with TF+I, and everybody who I have seen give numbers so far has seen something between a 5 % and a 20 % performance increase, which matches the numbers reported by the V8 team (independently of Node) iirc.

Yes, it’s unfortunate that we couldn’t get more feedback so far, and we should keep trying to get more, but if 5 out of 6 applications perform 15 % better, one performs 15 % worse (and to reiterate, that is hypothetical), we have a better support story for the future and the opportunity to backport further performance improvements from future V8 versions, then for me that’s enough to make this decision in favour of TF+I in Node 8 (again).

mcollina commented 7 years ago

I do not think we will ever had any objective data on this matter. This is unfortunate, but it is the nature of software: applications are mostly closed source. I think each one of us should make their tests on the closed source code they have access on and make an opinion about it.

I am finding very hard to work with Node 8.1, as it is very inconsistent. Some things are crankshaft, some are turbofan, and there are several things that are already been fixed on 8.2-rc.1 (also because crankshaft has been disabled). The sooner we ship the better, but we should have consensus with this change.

Nevertheless, I think we will have to float a significant amount of patches on top of V8 5.9 or 6.0.

mhdawson commented 7 years ago

@addaleax I'm not disagreeing with any of the points above and I'm not trying to say that performance is the only element in the decision. I agree that some results being better, some worse, is just fine. On the other hand I do think it is something we need to acknowledge and do our best to address.

What I think is important (others might disagree) is that we:

I think what @rvagg asked for in https://github.com/nodejs/CTC/issues/146#issuecomment-311884131 is that somebody step up to co-ordinate/psh the work required to generate the data required and to document the case we are going to make that we have done the required due diligence.

A first step might be to write up what we can say today based on the investigation/testing we have done so far and see how comfortable we would be as a group with that as our explanation for what we did to mitigate the risk. We might decide its good enough or that there are some additional things we should try to do between now and the LTS release.

evanlucas commented 7 years ago

To add in a data point on the perf, I wrote a more real world, slimmed down and basic version of something we are running in production. (https://github.com/evanlucas/node-benchmarks/tree/master/api-gateway)

It's pretty basic, but a lot more realistic than a res.end('hello, world')

evanhlucas_2017-jul-07

I think the sooner we get 5.9+ into node 8.x, the better. Then we can actually identify real world performance problems (if they exist) and fix them before it goes LTS

MylesBorins commented 7 years ago

A first step might be to write up what we can say today based on the investigation/testing we have done so far and see how comfortable we would be as a group with that as our explanation for what we did to mitigate the risk.

@mhdawson from my perspective #99 was a breakdown of exactly these concerns. We created a decision matrix, ran early benchmarks, and voted as a committee. While it was discussed that we would be willing to reverse the decision if there were major problems, I was not under the impression that the default would be for us to re-litigate the decision prior to landing. If anything the onus would be on individuals to bring forth problematic benchmarks, no vice versa.

As far as communicating with the community, the original decision was followed up by a blog post which received very positive feedback. We should likely prepare another if / when the new pipeline lands to make clear expectations... but at this point I genuinely believe our engaged community has an idea of what to expect.

from @rvagg's comment

Can we get someone to help drive this through to resolution?

This is somewhat frustrating for me. We had driven through a resolution and made a decision. We have been moving forward and working closely with the V8 team to get things working. At a certain point we are where we are, we can find problems, work towards fixing + improving them. Personally I have invested over 50 hours in various meetings, putting together documents, and driving consensus on this issue. I know there are various members of the Core Team + the V8 team who have put in similar hours, and potentially more.

I would like to humbly request that individuals who would like to see us not ship with V8 6.0 take the time to put together the documentation that is being requested. If individuals do not have the time to do so we should move forward with our original decision, put together a blog post explaining the state of the decision, and spend our time improving the platform.

refack commented 7 years ago

Ref: for me https://github.com/nodejs/node/pull/14131 is a good example of the low correlation between our micro-benchmarks and real-world impact. Something that should be kept in mind. The micro-benchmark suite has local value (evaluating a small change PR) but IMHO should not be the deciding factor in such big changes as V8 version changes.

[free association, no disrespect regarding ant metaphor] "Is a frame of reference valid for a specific discussion": https://youtu.be/D3GVVkPb3OI?t=3m31s

jasnell commented 7 years ago

Just catching up on the conversation and no where near through all of the comments... however, I will say that I agree with @MylesBorins that I had assumed the decision had already been made. Yes, we needed to make sure there were no significant regressions but the intention has been to move forward with 6.0 in 8.x -- that's why we delayed the 8.0.0 release and landed all those ABI compatibility patches, and is the expectation that we set with users. At this point, I think the burden is on those who may not want 6.0 to land in 8.x to justify why we shouldn't rather than the other way around.

MylesBorins commented 7 years ago

I would like to propose that at this time we should close this issue and open a new issue to focus on the communications that will be required when we finally land TF+I.

I believe we are less than two weeks away from a stable branch cut on 6.0. I've synced with the V8 team on the current problems present in https://github.com/nodejs/node/pull/14004 and they will work with us on getting things fixed

rvagg commented 7 years ago

Sorry to hear there's a difference in expectations at the heart of this discussion. This, from @MylesBorins' blog post is the sentiment that I've been working on (emphasis mine):

We want to give ourselves the option to ship the Node.js 8.x release line with the TurboFan + Ignition pipeline, which will become the default in V8 5.9. This would allow our next LTS release line to run on a more modern compiler + jit pipeline, making backporting easier and giving us a longer support contract from the V8 team.

Reviewing https://github.com/nodejs/CTC/issues/99 I can see there are both the "give us the option" sentiment and also the "we will upgrade" sentiment represented in there. I suspect that some of us assumed that the 5.8 delay in 8.0.0 was to give us the option to go 5.9+ during 8.x should it make sense (requiring an additional decision point, which is what I've been trying to push for here), but others were assuming that we were voting for the clear path to upgrading to 5.9+ during 8.x and that 5.8 + the delay for 8.0.0 were just steps in that process.

I'm not going to belabor this point as it seems that most people engaging here are just frustrated that we're even having the discussion and want to get on with TF+I, but if someone else wants to make this a voting point then please do so. However I think this whole issue points toward the need for greater clarity when doing this kind of non-trivial planning and ensuring that everyone involved is clear on what we're agreeing on and that our language is consistent.