Repository navigation
V8 5.9 & Node.js 8.0 #146
Description
- 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
- 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:
- 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?)
- 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 nodejs/node#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="</i> 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="</i> 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="</i> 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="</i> 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="</i> 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="</i> 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="</i> 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="</i> 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?
Activity
rvagg commentedon Jun 21, 2017
/cc @nodejs/ctc @nodejs/v8 @nodejs/lts
mcollina commentedon Jun 21, 2017
@rvagg we tested that same build on some private application code. Load testing that turned out to give 5-15% more throughput overall, even with all those regressions in the microbenchmarks. Even if streams microbenchmarks are lower, I see better throughput on some more realistic streams tests.
I would note that our microbenchmarks are more written for crankshaft.js than our codebase.
I think if we support v8 5.9, we might have to backport some of the performance regressions for which later v8 releases has fixes. As an example v8/v8@6d38f89 (which is be in 6.0) solves a very bad regression in the
throughmodule. I guess there are others. We would need to have a strategy to float those fixes over time. I worked with @bmeurer to solve that issue, and I think we can ask for similar fixes over time if there are significant regressions that we are noticing.Given that v8 5.9 has been released, can we just have a build done with that, so we can check again?
rvagg commentedon Jun 21, 2017
Thanks for the data point @mcollina, this is interesting.
https://nodejs.org/download/nightly/ has builds for
master(right down the bottom) which has 5.9 in it. https://nodejs.org/download/v8-canary/ has 6.1 in it if you want to reach further ahead.fhinkel commentedon Jun 21, 2017
We had looked into performance and saw only improvements from 5.8 to 5.9 /cc @psmarshall
mhdawson commentedon Jun 21, 2017
As per the discussion in the thread for the CTC meeting I agree that we should have something which shows an assessment of the data (micro benchmarks, nightly runs, other data) to support whether it should be pulled in or not.
I think earlier suggestion from @MylesBorins (possibly in the LTS WG) was that we might want to skip 5.9 and wait for 6.0 before updating Node version 8. The rational being that 6.0 will have lots of fixes (performance and otherwise) and we don't want to go LTS with V8 5.9, it should either be V5.8 or 6.0.
rvagg commentedon Jun 21, 2017
If someone wants to spend some time on this, maybe a good way to run the benchmarks would be to compare 8.1.0 with the commits in the 8.2.0 proposal, that would remove all the extra noise.
Also I believe that most of the benchmarks above are run on Windows. I don't know if it would make much difference but Linux is arguably more important as a deployment platform for Node (yes we have a very high number of Windows users but it's just not used for prod deployments as much).
addaleax commentedon Jun 21, 2017
@rvagg That’s one of the reasons I’d like to see an 8.2.0 RC with V8 5.9 – it would make it a bit easier for people to check how their own applications perform. (And to answer your question in the release proposal thread: Yes, of course we can back out those changes if we agree that that’s the best course of action.)
psmarshall commentedon Jun 21, 2017
I looked into the benchmarks mentioned above, I'll write an overview here and get the data into a better format for more details soon.
A lot of the regressions we saw happened to rely on some optimization that crankshaft had, and turbofan didn't. Because these are microbenchmarks, we saw that missing one optimization can tank a whole benchmark. In larger benchmarks, we might be a little bit slower here, and a little bit faster there, but we mostly see overall performance gains in the range of 5-15% like @mcollina mentioned.
The microbenchmarks do give us useful information - they point out that one particular thing didn't work as fast as it did in crankshaft for some reason. e.g. In the url benchmarks we saw -40% to -70% regressions. This was due to missing inlining which is now fixed (see v8/v8@23ee743). These types of fixes also gave noticeable performance boosts on other, non-node benchmarks, so that's an indication that they are useful, and not just overfitting to the benchmark.
http (one of the worst regressions) is basically entirely down to handling of String charCodeAt, which crankshaft inlined aggressively (tracking bug). Same with path.
More data to come tomorrow.
Trott commentedon Jun 21, 2017
@rvagg When we had the last CTC/V8 meeting (or at least the last one I was able to go to), it was the V8 team that both proposed/organized the meeting and brought up the issue of CrankshiftScript in our code. (I think it was even one of them--Benedikt, maybe?--that coined the term.) They seemed very interested/invested in helping us figure out how to get from our current codebase to something that would play as nice or better with Turbofan. I could be wrong, but I think we're getting a lot of help from them already, even if it may not be as visible as we might expect. And I think requests for more help in specific areas would not fall on deaf ears.
Apologies in advance if it sounds like I'm reading something into your comment that isn't there. I've personally been extremely pleased and grateful about the V8 team's assistance with Node.js for a long time now and so I'm taking the opportunity to express that.
And none of this takes away from the main issue of course, which is that the task is enormous and fraught with "moving lever A fixes spring B but causes button C to stop working" type perils. We should plan and discuss publicly, like you're doing here.
rvagg commentedon Jun 21, 2017
Sorry for not being absolutely clear—I agree that the fruit that the Node/V8 relationship is bearing is impressive and mutually valuable and I'm not trying to knock that, just that it seems to me from looking from the outside that the way we're going to have to tackle the problem is by changing things on our end to better adapt to V8 rather than expecting V8 to adapt to our overoptimised codebase. I also think that's perfectly reasonable fwiw because it's not as if our codebase is representative in any way of typical Node.js, nor is it idiomatic ES3/5, it really is CrankshaftScript and that's a dead reality now. So we're in for pain either way and it's exactly the whack-a-mole problem you mentioned that I'm most afraid of because it's bitten us so hard multiple times in the past and we now need to do it on a scale that we've never attempted before.
I hope I'm not being interpreted as being willfully obstructionist here, I'm really only concerned about the issues I laid out in the OP. If the answer is simply that our benchmarks, or the particular runs of the benchmarks taken from the old 5.9 candidate, don't match a reality that we think matters then we significantly simplify this issue.
8.2.0-rc.1 coming soon, see nodejs/node#13744 (comment)
rvagg commentedon Jun 22, 2017
@not-an-aardvark nodejs/node#13744 (comment):
We really are overdue for a proper representative benchmark suite.
zbjornson commentedon Jun 22, 2017
Per @rvagg's broadcast on twitter, here's a set of benchmarks run on 7.10.0 and 8.2.0-rc.1 (all values are ops/sec):
I can explain what the benchmarks are if anyone's interested, but it sounds like the goal is just to see how some real world applications do.
Some of the most interesting cases are the four that start with "QS" and the five that start with "Clamp" -- those are all different implementations of the same functions that we tested during development before picking the fastest to actually ship. For QS the fastest implementation is different between v8 versions. Clamp is within margin of error.
These are all math-heavy functions and I think they would all run in d8. That is, these shouldn't be reflective of node API performance. I haven't looked at the generated assembly yet, and I have limited time to do so in the next few weeks if it would be helpful.
BTW, from the buffer-swap.js benchmarks in the OP, only the ones with len=128 runs in JS; the others are CPP. (And only the ones in JS have a perf degradation.) I think you're also missing the
fsbenchmarks from the original thread.matthargett commentedon Jun 22, 2017
I'd love to see the CrankshaftScript replaced with more idiomatic JS (or C++) to enable better performance possibilities from alternative JS runtimes like ChakraCore (used in node-chakracore) and SpiderMonkey (spidernode). RIght now, I don't think the Nodejs ecosystem isn't as strong as it could be due to this coupling between Node.js and v8 that effectively limits real-world deployable innovations (memory use, requests per second per watt, etc) versus browser-side JS. To echo folks above, I'd really like to see some hot-path aspects of this corrected for the next LTS.
@rvagg for my purposes, AcmeAir, SSR benchmarks, and Octane are a reasonable iron triangle for community-run CI. Between the raw benchmark times+memory use, and monitoring/pinning JIT stats (bailouts, re-JITs, etc), I think many of the app-level regression cases for my context would be caught.
vsemozhetbyt commentedon Jun 22, 2017
(FWIW, besides
fs, also missing in the copy from the old results:crypto,dgram,misc, andpath).vsemozhetbyt commentedon Jun 23, 2017
The old data seems really outdated. I've just run the
arraybenchmarks (still on Windows), that initially cause severe concerns:nodejs/node#11851 (comment)
nodejs/node#11851 (comment)
The pros and cons seem drastically different now (8.1.2 vs 8.2.0-rc-1):
Label (click me):
34 remaining items
targos commentedon Jun 30, 2017
I opened nodejs/node#14004 to track the update to V8 6.0.
bmeurer commentedon Jun 30, 2017
Nice, that was quick :-)
MylesBorins commentedon Jul 1, 2017
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 commentedon Jul 6, 2017
cc @natorion
mhdawson commentedon Jul 6, 2017
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 commentedon Jul 6, 2017
@mhdawson Just so we’re on the same page, what I understand Myles as saying, and what I understood to be the outcome #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 commentedon Jul 7, 2017
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 commentedon Jul 7, 2017
@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 #146 (comment) 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 commentedon Jul 7, 2017
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')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 commentedon Jul 7, 2017
@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
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 commentedon Jul 8, 2017
Ref: for me nodejs/node#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 commentedon Jul 10, 2017
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 commentedon Jul 11, 2017
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 nodejs/node#14004 and they will work with us on getting things fixed
rvagg commentedon Jul 17, 2017
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):
Reviewing #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.