| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
There was a problem hiding this comment.
The benchmarks show mostly regressions, no?
Sorry, something went wrong.
I only changed the UTF-8 calculation for Buffer.byteLength(). The regression results you see may be due to the local environment. Could you run benchmark-ci for me? That way we can be more certain. |
Sorry, something went wrong.
Codecov Report❌ Patch coverage is 69.56522% with 7 lines in your changes missing coverage. Please review.
@@ Coverage Diff @@
## main #61601 +/- ##
==========================================
- Coverage 91.62% 89.66% -1.97%
==========================================
Files 337 676 +339
Lines 140453 206320 +65867
Branches 21801 39526 +17725
==========================================
+ Hits 128694 184999 +56305
- Misses 11536 13450 +1914
- Partials 223 7871 +7648
... and 462 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
|
Thanks for the review @BridgeAR Pushed a fix for the regressions and updated results issue was String::ValueView overhead eating simdutf gains on one-byte strings. Now I grab external one-byte pointers directly (zero-copy), skip simdutf for small one-byte strings (≤1024) using V8's native path, and apply full simdutf for two-byte strings after 128 bytes. Results: |
Sorry, something went wrong.
@BridgeAR can you rereview? the benchmarks seems to be unstable enough to show differences in untriggered paths |
Sorry, something went wrong.
Sorry, something went wrong.
|
Hey @BridgeAR, if you're available, could you take a look at this? |
Sorry, something went wrong.
Sorry, something went wrong.
|
@mertcanaltin I think the PR description (and the benchmark) needs to be updated since you added a minimum threshold. |
Sorry, something went wrong.
|
@anonrig Updated Pr Description, simplified the approach to only use simdutf for two-byte strings. One-byte strings delegate to V8's Utf8LengthV2 ~207-345% improvement on multi-byte @BridgeAR regressions are resolved, could you re-review? |
Sorry, something went wrong.
|
Benchmark: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1806/ Significant regressions are still present |
Sorry, something went wrong.
@BridgeAR Thanks for the benchmark results, The regressions on small strings were caused by the extra branching overhead, the previous version had separate IsOneByte(), threshold, and simdutf checks before reaching Utf8LengthV2, which added up for short inputs (repeat=1, repeat=2). I fixed it by combining the checks into a single condition: if (length <= kSmallStringThreshold || source->IsOneByte()). Since || short-circuits, small strings hit the length check first and go straight to V8 without any additional calls. This way we keep the fast simdutf path for large two-byte strings while small strings take the same lightweight path as before. my local result, the solved regression: repeat=1, two_bytes -16.06% to +1.47% repeat=1, three_bytes -17.44% to +1.52% repeat=2, two_bytes -19.59% to +1.86% repeat=2, three_bytes -10.65% to +1.06% my all local result: ➜ node git:(mert/stringView/buffer) ✗ node-benchmark-compare ./result.csv
confidence improvement accuracy (*) (**) (***)
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='four_bytes' -1.60 % ±2.24% ±3.03% ±4.04%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='latin1' -1.04 % ±2.46% ±3.34% ±4.49%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='one_byte' 0.40 % ±1.99% ±2.69% ±3.57%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='three_bytes' * -1.79 % ±1.67% ±2.26% ±3.02%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='two_bytes' -0.77 % ±1.93% ±2.60% ±3.46%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='four_bytes' -0.60 % ±4.04% ±5.55% ±7.59%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='latin1' 0.39 % ±1.45% ±1.96% ±2.61%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='one_byte' 1.50 % ±1.63% ±2.20% ±2.93%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='three_bytes' 1.52 % ±1.64% ±2.21% ±2.94%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='two_bytes' * 1.47 % ±1.37% ±1.85% ±2.46%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='four_bytes' 0.10 % ±2.07% ±2.79% ±3.70%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='latin1' * -2.04 % ±1.84% ±2.49% ±3.32%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='one_byte' 2.66 % ±4.29% ±5.90% ±8.09%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='three_bytes' 0.01 % ±1.66% ±2.25% ±3.00%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='two_bytes' 0.61 % ±2.10% ±2.84% ±3.79%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='four_bytes' *** 196.97 % ±3.63% ±5.00% ±6.88%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='latin1' -0.05 % ±1.43% ±1.93% ±2.57%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='one_byte' * 1.77 % ±1.41% ±1.91% ±2.54%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='three_bytes' *** 208.59 % ±5.56% ±7.69% ±10.62%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='two_bytes' *** 204.15 % ±3.91% ±5.37% ±7.35%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='four_bytes' -0.01 % ±1.68% ±2.27% ±3.01%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='latin1' -0.47 % ±1.72% ±2.32% ±3.09%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='one_byte' -0.66 % ±2.15% ±2.91% ±3.89%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='three_bytes' -0.61 % ±1.53% ±2.07% ±2.75%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='two_bytes' -0.23 % ±2.05% ±2.76% ±3.68%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='four_bytes' -0.41 % ±1.49% ±2.01% ±2.69%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='latin1' 0.28 % ±1.54% ±2.08% ±2.78%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='one_byte' *** 3.25 % ±1.61% ±2.17% ±2.88%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='three_bytes' 1.06 % ±1.73% ±2.34% ±3.13%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='two_bytes' * 1.86 % ±1.53% ±2.07% ±2.78%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='four_bytes' -0.57 % ±2.07% ±2.79% ±3.71%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='latin1' -2.11 % ±2.59% ±3.56% ±4.90%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='one_byte' -1.13 % ±2.10% ±2.83% ±3.77%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='three_bytes' 0.06 % ±3.00% ±4.09% ±5.54%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='two_bytes' -1.17 % ±1.72% ±2.32% ±3.09%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='four_bytes' *** 222.29 % ±5.34% ±7.38% ±10.21%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='latin1' -0.05 % ±1.04% ±1.41% ±1.88%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='one_byte' 0.80 % ±1.43% ±1.93% ±2.59%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='three_bytes' *** 299.53 % ±7.37% ±10.21% ±14.14%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='two_bytes' *** 301.01 % ±8.69% ±12.04% ±16.70%
Be aware that when doing many comparisons the risk of a false-positive result increases.
In this case, there are 40 comparisons, you can thus expect the following amount of false-positive results:
2.00 false positives, when considering a 5% risk acceptance (*, **, ***),
0.40 false positives, when considering a 1% risk acceptance (**, ***),
0.04 false positives, when considering a 0.1% risk acceptance (***)
➜ node git:(mert/stringView/buffer) ✗
|
Sorry, something went wrong.
|
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1810/ Resultsconfidence improvement accuracy (*) (**) (***)
buffers/buffer-atob.js n=1000000 size=128 *** 6.07 % ±1.37% ±1.81% ±2.34%
buffers/buffer-atob.js n=1000000 size=16 *** 2.78 % ±0.95% ±1.25% ±1.62%
buffers/buffer-atob.js n=1000000 size=32 *** 2.19 % ±1.26% ±1.66% ±2.15%
buffers/buffer-atob.js n=1000000 size=64 *** 3.43 % ±1.17% ±1.55% ±2.00%
buffers/buffer-base64-decode-wrapped.js n=32 linesCount=524288 charsPerLine=76 0.38 % ±0.61% ±0.81% ±1.05%
buffers/buffer-base64-decode.js size=8388608 n=32 -0.05 % ±0.11% ±0.15% ±0.19%
buffers/buffer-base64-encode.js n=32 len=67108864 -0.02 % ±0.06% ±0.08% ±0.11%
buffers/buffer-base64url-decode.js size=8388608 n=32 0.04 % ±0.12% ±0.15% ±0.20%
buffers/buffer-base64url-encode.js n=32 len=67108864 -0.03 % ±0.08% ±0.10% ±0.13%
buffers/buffer-btoa.js n=1000000 size=1024 0.44 % ±0.58% ±0.77% ±0.99%
buffers/buffer-btoa.js n=1000000 size=128 -0.80 % ±1.38% ±1.83% ±2.36%
buffers/buffer-btoa.js n=1000000 size=16 *** -3.10 % ±1.51% ±1.99% ±2.57%
buffers/buffer-btoa.js n=1000000 size=256 * 1.29 % ±1.15% ±1.52% ±1.96%
buffers/buffer-btoa.js n=1000000 size=32 -1.39 % ±1.56% ±2.07% ±2.67%
buffers/buffer-btoa.js n=1000000 size=64 ** -2.04 % ±1.51% ±2.00% ±2.58%
buffers/buffer-bytelength-buffer.js n=4000000 len=16 0.19 % ±1.97% ±2.61% ±3.36%
buffers/buffer-bytelength-buffer.js n=4000000 len=2 0.96 % ±2.26% ±2.99% ±3.85%
buffers/buffer-bytelength-buffer.js n=4000000 len=256 * -2.19 % ±2.06% ±2.72% ±3.50%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='four_bytes' 0.06 % ±1.83% ±2.42% ±3.12%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='latin1' ** 2.48 % ±1.80% ±2.38% ±3.08%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='one_byte' -0.37 % ±1.86% ±2.46% ±3.18%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='three_bytes' -1.27 % ±1.80% ±2.38% ±3.07%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='two_bytes' 0.34 % ±1.93% ±2.55% ±3.29%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='four_bytes' *** -1.47 % ±0.83% ±1.10% ±1.43%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='latin1' *** 6.51 % ±1.47% ±1.94% ±2.51%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='one_byte' *** 8.83 % ±1.21% ±1.61% ±2.07%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='three_bytes' *** -5.72 % ±1.11% ±1.47% ±1.89%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='two_bytes' *** -4.50 % ±1.24% ±1.64% ±2.11%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='four_bytes' 0.51 % ±1.79% ±2.36% ±3.04%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='latin1' ** 2.55 % ±1.79% ±2.37% ±3.06%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='one_byte' * 1.95 % ±1.64% ±2.17% ±2.80%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='three_bytes' 0.93 % ±1.78% ±2.36% ±3.04%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='two_bytes' 0.24 % ±1.90% ±2.51% ±3.24%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='four_bytes' *** 199.37 % ±1.02% ±1.36% ±1.77%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='latin1' ** 0.69 % ±0.41% ±0.54% ±0.70%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='one_byte' *** 8.51 % ±2.03% ±2.68% ±3.46%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='three_bytes' *** 111.67 % ±1.93% ±2.57% ±3.34%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='two_bytes' *** 72.98 % ±1.57% ±2.08% ±2.71%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='four_bytes' 1.02 % ±1.76% ±2.33% ±3.00%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='latin1' 0.85 % ±2.06% ±2.72% ±3.51%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='one_byte' -1.05 % ±1.68% ±2.23% ±2.87%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='three_bytes' 0.78 % ±1.83% ±2.42% ±3.11%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='two_bytes' -0.19 % ±1.95% ±2.58% ±3.33%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='four_bytes' *** 0.88 % ±0.51% ±0.68% ±0.88%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='latin1' *** 8.15 % ±1.74% ±2.30% ±2.97%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='one_byte' *** 10.27 % ±2.14% ±2.83% ±3.65%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='three_bytes' *** 2.18 % ±0.80% ±1.05% ±1.36%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='two_bytes' *** 2.52 % ±0.94% ±1.24% ±1.59%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='four_bytes' 0.81 % ±1.93% ±2.55% ±3.28%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='latin1' 1.69 % ±1.69% ±2.23% ±2.88%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='one_byte' -0.00 % ±1.88% ±2.49% ±3.21%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='three_bytes' -0.91 % ±1.62% ±2.14% ±2.76%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='two_bytes' 0.96 % ±1.91% ±2.53% ±3.26%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='four_bytes' *** 305.35 % ±1.08% ±1.44% ±1.87%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='latin1' 0.01 % ±1.12% ±1.48% ±1.91%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='one_byte' 0.22 % ±1.21% ±1.60% ±2.06%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='three_bytes' *** 322.25 % ±1.07% ±1.42% ±1.85%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='two_bytes' *** 209.39 % ±0.77% ±1.02% ±1.33%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16 -0.94 % ±2.57% ±3.41% ±4.39%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16386 -1.48 % ±1.78% ±2.35% ±3.03%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=4096 -0.78 % ±2.34% ±3.09% ±3.98%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=512 1.84 % ±2.80% ±3.71% ±4.78%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16 1.90 % ±2.01% ±2.66% ±3.43%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16386 0.28 % ±3.45% ±4.56% ±5.88%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=4096 ** 3.00 % ±1.94% ±2.57% ±3.31%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=512 -0.14 % ±1.91% ±2.53% ±3.26%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16 -0.64 % ±2.40% ±3.17% ±4.08%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16386 -0.38 % ±2.94% ±3.89% ±5.02%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=4096 -0.48 % ±1.79% ±2.37% ±3.05%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=512 0.27 % ±2.25% ±2.97% ±3.83%
buffers/buffer-compare-offset.js n=1000000 size=16 method='offset' -0.93 % ±1.26% ±1.66% ±2.14%
buffers/buffer-compare-offset.js n=1000000 size=16 method='slice' 0.19 % ±1.20% ±1.58% ±2.04%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='offset' 0.54 % ±1.30% ±1.72% ±2.22%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='slice' 1.15 % ±1.35% ±1.79% ±2.31%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='offset' 1.17 % ±1.55% ±2.05% ±2.65%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='slice' ** 1.88 % ±1.18% ±1.57% ±2.02%
buffers/buffer-compare-offset.js n=1000000 size=512 method='offset' 0.61 % ±1.39% ±1.84% ±2.37%
buffers/buffer-compare-offset.js n=1000000 size=512 method='slice' 0.83 % ±1.20% ±1.59% ±2.05%
buffers/buffer-compare.js n=1000000 size=16 0.01 % ±1.51% ±1.99% ±2.57%
buffers/buffer-compare.js n=1000000 size=16386 -0.46 % ±0.79% ±1.04% ±1.36%
buffers/buffer-compare.js n=1000000 size=4096 -0.71 % ±1.56% ±2.06% ±2.66%
buffers/buffer-compare.js n=1000000 size=512 0.75 % ±1.21% ±1.60% ±2.07%
buffers/buffer-concat-fill.js n=800000 extraSize=1 0.22 % ±0.75% ±1.00% ±1.28%
buffers/buffer-concat-fill.js n=800000 extraSize=1024 0.03 % ±0.73% ±0.96% ±1.24%
buffers/buffer-concat-fill.js n=800000 extraSize=256 0.43 % ±0.67% ±0.89% ±1.15%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=16 -0.47 % ±0.78% ±1.03% ±1.33%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=4 -0.39 % ±0.91% ±1.21% ±1.56%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=16 0.09 % ±0.69% ±0.91% ±1.17%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=4 -0.52 % ±1.32% ±1.74% ±2.25%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=16 0.17 % ±0.48% ±0.64% ±0.82%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=4 -0.59 % ±0.71% ±0.94% ±1.21%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=16 -0.62 % ±1.11% ±1.46% ±1.89%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=4 -0.29 % ±1.11% ±1.47% ±1.89%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=16 * 1.48 % ±1.32% ±1.75% ±2.26%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=4 -0.09 % ±1.18% ±1.56% ±2.01%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=16 -0.44 % ±0.49% ±0.65% ±0.83%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=4 0.00 % ±0.63% ±0.83% ±1.07%
buffers/buffer-copy.js n=6000000 partial='false' bytes=1024 0.97 % ±1.37% ±1.82% ±2.34%
buffers/buffer-copy.js n=6000000 partial='false' bytes=128 -1.87 % ±2.27% ±3.00% ±3.87%
buffers/buffer-copy.js n=6000000 partial='false' bytes=8 2.16 % ±2.60% ±3.43% ±4.43%
buffers/buffer-copy.js n=6000000 partial='true' bytes=1024 -0.44 % ±0.74% ±0.98% ±1.27%
buffers/buffer-copy.js n=6000000 partial='true' bytes=128 -0.11 % ±0.69% ±0.91% ±1.18%
buffers/buffer-copy.js n=6000000 partial='true' bytes=8 0.15 % ±0.65% ±0.87% ±1.12%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc-fill' -2.04 % ±3.08% ±4.07% ±5.25%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc' -1.66 % ±3.50% ±4.63% ±5.97%
buffers/buffer-creation.js n=600000 len=10 type='fast-allocUnsafe' -0.64 % ±3.86% ±5.10% ±6.57%
buffers/buffer-creation.js n=600000 len=10 type='slow-allocUnsafe' * -3.77 % ±3.64% ±4.81% ±6.20%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc-fill' 0.37 % ±0.54% ±0.72% ±0.93%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc' -0.28 % ±0.54% ±0.72% ±0.92%
buffers/buffer-creation.js n=600000 len=1024 type='fast-allocUnsafe' -0.35 % ±1.11% ±1.47% ±1.89%
buffers/buffer-creation.js n=600000 len=1024 type='slow-allocUnsafe' * -0.46 % ±0.45% ±0.59% ±0.76%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc-fill' -0.27 % ±0.51% ±0.67% ±0.87%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc' -0.52 % ±0.52% ±0.69% ±0.89%
buffers/buffer-creation.js n=600000 len=4096 type='fast-allocUnsafe' 0.01 % ±0.54% ±0.71% ±0.92%
buffers/buffer-creation.js n=600000 len=4096 type='slow-allocUnsafe' 0.13 % ±0.61% ±0.81% ±1.05%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc-fill' -0.06 % ±0.52% ±0.69% ±0.89%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc' 0.36 % ±0.58% ±0.77% ±0.99%
buffers/buffer-creation.js n=600000 len=8192 type='fast-allocUnsafe' * 0.70 % ±0.61% ±0.80% ±1.04%
buffers/buffer-creation.js n=600000 len=8192 type='slow-allocUnsafe' 0.17 % ±0.57% ±0.75% ±0.97%
buffers/buffer-equals.js n=1000000 difflen='false' size=0 0.33 % ±1.48% ±1.96% ±2.52%
buffers/buffer-equals.js n=1000000 difflen='false' size=16386 *** 21.02 % ±0.20% ±0.26% ±0.34%
buffers/buffer-equals.js n=1000000 difflen='false' size=512 0.70 % ±1.08% ±1.43% ±1.84%
buffers/buffer-equals.js n=1000000 difflen='true' size=0 -1.21 % ±1.67% ±2.20% ±2.84%
buffers/buffer-equals.js n=1000000 difflen='true' size=16386 -0.39 % ±1.47% ±1.94% ±2.50%
buffers/buffer-equals.js n=1000000 difflen='true' size=512 -0.26 % ±0.67% ±0.89% ±1.14%
buffers/buffer-fill.js n=20000 size=65536 type='fill("")' -1.21 % ±2.32% ±3.07% ±3.96%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", "utf8")' 0.77 % ±2.42% ±3.20% ±4.12%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", 0, "utf8")' -0.78 % ±2.53% ±3.34% ±4.31%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t", 0)' -0.13 % ±1.29% ±1.70% ±2.20%
buffers/buffer-fill.js n=20000 size=65536 type='fill("t")' -1.89 % ±2.23% ±2.94% ±3.80%
buffers/buffer-fill.js n=20000 size=65536 type='fill("test")' -1.56 % ±2.62% ±3.47% ±4.47%
buffers/buffer-fill.js n=20000 size=65536 type='fill(0)' ** -1.69 % ±1.13% ±1.50% ±1.93%
buffers/buffer-fill.js n=20000 size=65536 type='fill(100)' ** -1.98 % ±1.32% ±1.75% ±2.26%
buffers/buffer-fill.js n=20000 size=65536 type='fill(400)' * -1.63 % ±1.25% ±1.66% ±2.14%
buffers/buffer-fill.js n=20000 size=65536 type='fill(Buffer.alloc(1), 0)' -0.87 % ±2.22% ±2.94% ±3.79%
buffers/buffer-fill.js n=20000 size=8192 type='fill("")' 4.63 % ±9.06% ±11.98% ±15.45%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", "utf8")' -3.13 % ±7.49% ±9.91% ±12.77%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", 0, "utf8")' 0.90 % ±7.38% ±9.75% ±12.57%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", 0)' -1.64 % ±6.68% ±8.83% ±11.38%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t")' -5.07 % ±6.71% ±8.87% ±11.44%
buffers/buffer-fill.js n=20000 size=8192 type='fill("test")' 0.47 % ±7.82% ±10.35% ±13.34%
buffers/buffer-fill.js n=20000 size=8192 type='fill(0)' ** -1.45 % ±0.88% ±1.16% ±1.50%
buffers/buffer-fill.js n=20000 size=8192 type='fill(100)' 0.67 % ±2.52% ±3.35% ±4.36%
buffers/buffer-fill.js n=20000 size=8192 type='fill(400)' -1.64 % ±2.48% ±3.30% ±4.27%
buffers/buffer-fill.js n=20000 size=8192 type='fill(Buffer.alloc(1), 0)' ** -9.58 % ±6.81% ±9.01% ±11.62%
buffers/buffer-from.js n=800000 len=100 source='array' *** -4.72 % ±0.98% ±1.30% ±1.68%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer-middle' * 3.55 % ±3.09% ±4.09% ±5.27%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer' -0.19 % ±3.00% ±3.97% ±5.12%
buffers/buffer-from.js n=800000 len=100 source='buffer' 0.51 % ±2.16% ±2.86% ±3.68%
buffers/buffer-from.js n=800000 len=100 source='object' 1.63 % ±2.48% ±3.28% ±4.23%
buffers/buffer-from.js n=800000 len=100 source='string-base64' -0.65 % ±0.72% ±0.95% ±1.23%
buffers/buffer-from.js n=800000 len=100 source='string-utf8' -0.81 % ±1.52% ±2.00% ±2.58%
buffers/buffer-from.js n=800000 len=100 source='string' -0.66 % ±1.44% ±1.91% ±2.46%
buffers/buffer-from.js n=800000 len=100 source='uint16array' 0.02 % ±1.45% ±1.91% ±2.46%
buffers/buffer-from.js n=800000 len=100 source='uint8array' 0.83 % ±2.18% ±2.88% ±3.71%
buffers/buffer-from.js n=800000 len=2048 source='array' *** 0.47 % ±0.19% ±0.25% ±0.32%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer-middle' 1.36 % ±2.69% ±3.56% ±4.59%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer' 1.85 % ±3.17% ±4.20% ±5.41%
buffers/buffer-from.js n=800000 len=2048 source='buffer' -0.08 % ±0.72% ±0.95% ±1.23%
buffers/buffer-from.js n=800000 len=2048 source='object' 0.00 % ±3.04% ±4.01% ±5.17%
buffers/buffer-from.js n=800000 len=2048 source='string-base64' -0.49 % ±0.55% ±0.72% ±0.93%
buffers/buffer-from.js n=800000 len=2048 source='string-utf8' 0.26 % ±0.65% ±0.86% ±1.11%
buffers/buffer-from.js n=800000 len=2048 source='string' -0.10 % ±0.55% ±0.73% ±0.94%
buffers/buffer-from.js n=800000 len=2048 source='uint16array' -0.23 % ±0.58% ±0.77% ±0.99%
buffers/buffer-from.js n=800000 len=2048 source='uint8array' -0.47 % ±0.68% ±0.89% ±1.15%
buffers/buffer-hex-decode.js n=1000000 len=1024 -0.27 % ±0.47% ±0.63% ±0.81%
buffers/buffer-hex-decode.js n=1000000 len=64 0.21 % ±1.37% ±1.81% ±2.33%
buffers/buffer-hex-encode.js n=1000000 len=1024 *** -0.20 % ±0.08% ±0.11% ±0.14%
buffers/buffer-hex-encode.js n=1000000 len=64 -0.36 % ±0.62% ±0.82% ±1.06%
buffers/buffer-indexof-number.js n=1000000 value=64 -0.82 % ±2.18% ±2.88% ±3.71%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='--l' -0.09 % ±0.25% ±0.34% ±0.43%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='@' -2.86 % ±6.90% ±9.12% ±11.75%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='</i> to the Caterpillar' *** 0.55 % ±0.03% ±0.04% ±0.06%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='aaaaaaaaaaaaaaaaa' *** 3.14 % ±0.05% ±0.07% ±0.09%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Alice' 1.15 % ±9.38% ±12.40% ±15.99%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='found it very' *** 0.22 % ±0.02% ±0.03% ±0.04%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Gryphon' -0.26 % ±0.65% ±0.86% ±1.11%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='neighbouring pool' *** 2.18 % ±0.04% ±0.05% ±0.06%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Ou est ma chatte?' 0.08 % ±0.09% ±0.11% ±0.15%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='SQ' ** -2.55 % ±1.91% ±2.53% ±3.27%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='venture to go near the house till she had brought herself down to' * 1.22 % ±1.19% ±1.58% ±2.05%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='--l' 0.61 % ±0.71% ±0.95% ±1.22%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='@' *** -7.48 % ±3.74% ±4.95% ±6.40%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='</i> to the Caterpillar' 1.07 % ±1.73% ±2.29% ±2.96%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='aaaaaaaaaaaaaaaaa' 0.03 % ±1.05% ±1.39% ±1.79%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Alice' -0.87 % ±5.68% ±7.52% ±9.69%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='found it very' 0.25 % ±0.52% ±0.68% ±0.89%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Gryphon' -0.45 % ±0.80% ±1.06% ±1.37%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='neighbouring pool' 0.15 % ±0.67% ±0.89% ±1.15%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Ou est ma chatte?' -0.50 % ±1.98% ±2.61% ±3.37%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='SQ' -0.12 % ±1.89% ±2.50% ±3.22%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='venture to go near the house till she had brought herself down to' -0.14 % ±2.01% ±2.66% ±3.43%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='--l' -0.08 % ±0.18% ±0.24% ±0.31%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='@' -1.89 % ±5.00% ±6.61% ±8.53%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='</i> to the Caterpillar' 0.92 % ±1.10% ±1.46% ±1.88%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='aaaaaaaaaaaaaaaaa' *** 3.58 % ±0.88% ±1.17% ±1.50%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Alice' 0.16 % ±5.89% ±7.79% ±10.05%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='found it very' ** 1.31 % ±0.79% ±1.05% ±1.36%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Gryphon' 0.19 % ±0.82% ±1.09% ±1.40%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='neighbouring pool' *** 1.66 % ±0.89% ±1.18% ±1.53%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Ou est ma chatte?' *** -0.49 % ±0.13% ±0.18% ±0.23%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='SQ' 0.08 % ±1.70% ±2.24% ±2.89%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='venture to go near the house till she had brought herself down to' -1.23 % ±1.37% ±1.82% ±2.35%
buffers/buffer-isascii.js input='hello world' length='long' n=20000000 *** 38.44 % ±1.79% ±2.37% ±3.06%
buffers/buffer-isascii.js input='hello world' length='short' n=20000000 *** 29.59 % ±2.00% ±2.65% ±3.41%
buffers/buffer-isutf8.js input='∀x∈ℝ: ⌈x⌉ = −⌊−x⌋' length='long' n=20000000 0.04 % ±0.07% ±0.10% ±0.12%
buffers/buffer-isutf8.js input='∀x∈ℝ: ⌈x⌉ = −⌊−x⌋' length='short' n=20000000 -0.48 % ±1.57% ±2.08% ±2.68%
buffers/buffer-isutf8.js input='regular string' length='long' n=20000000 * -2.53 % ±2.29% ±3.03% ±3.91%
buffers/buffer-isutf8.js input='regular string' length='short' n=20000000 0.09 % ±0.68% ±0.90% ±1.17%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=16386 0.99 % ±3.27% ±4.32% ±5.57%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=4096 5.08 % ±6.48% ±8.57% ±11.05%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=512 -9.03 % ±11.58% ±15.31% ±19.73%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=16386 0.04 % ±0.89% ±1.18% ±1.52%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=4096 0.34 % ±3.45% ±4.56% ±5.88%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=512 1.29 % ±8.65% ±11.43% ±14.74%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=16386 0.14 % ±0.85% ±1.12% ±1.45%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=4096 -0.66 % ±2.15% ±2.84% ±3.66%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=512 0.37 % ±7.78% ±10.29% ±13.27%
buffers/buffer-normalize-encoding.js n=1000000 encoding='ascii' * 4.12 % ±3.56% ±4.71% ±6.08%
buffers/buffer-normalize-encoding.js n=1000000 encoding='base64' -0.34 % ±0.80% ±1.06% ±1.37%
buffers/buffer-normalize-encoding.js n=1000000 encoding='BASE64' -0.73 % ±2.46% ±3.25% ±4.19%
buffers/buffer-normalize-encoding.js n=1000000 encoding='binary' -0.90 % ±3.37% ±4.46% ±5.74%
buffers/buffer-normalize-encoding.js n=1000000 encoding='hex' -0.50 % ±0.88% ±1.17% ±1.51%
buffers/buffer-normalize-encoding.js n=1000000 encoding='HEX' -1.71 % ±3.03% ±4.01% ±5.16%
buffers/buffer-normalize-encoding.js n=1000000 encoding='latin1' -3.03 % ±3.64% ±4.82% ±6.21%
buffers/buffer-normalize-encoding.js n=1000000 encoding='LATIN1' * 3.44 % ±2.91% ±3.85% ±4.96%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS-2' * 2.31 % ±2.27% ±3.00% ±3.86%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS2' 0.22 % ±2.78% ±3.67% ±4.73%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-16le' -1.02 % ±1.37% ±1.82% ±2.35%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF-16LE' -0.99 % ±3.27% ±4.32% ±5.57%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-8' 0.03 % ±0.78% ±1.03% ±1.33%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf16le' -0.86 % ±1.59% ±2.11% ±2.73%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF16LE' -0.62 % ±3.11% ±4.12% ±5.31%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf8' -1.21 % ±1.86% ±2.47% ±3.20%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF8' -1.43 % ±1.76% ±2.33% ±3.01%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Double' 6.12 % ±11.85% ±15.67% ±20.20%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Float' 6.08 % ±13.70% ±18.12% ±23.35%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Double' -7.01 % ±11.31% ±14.95% ±19.28%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Float' 11.30 % ±13.82% ±18.27% ±23.56%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Double' 2.25 % ±11.90% ±15.73% ±20.28%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Float' 6.21 % ±13.87% ±18.34% ±23.64%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Double' -1.48 % ±11.70% ±15.47% ±19.94%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Float' 3.43 % ±13.45% ±17.78% ±22.92%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Double' * -12.13 % ±9.53% ±12.60% ±16.25%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Float' 2.16 % ±8.23% ±10.88% ±14.02%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntBE' buffer='fast' -9.35 % ±9.81% ±12.97% ±16.72%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntLE' buffer='fast' -5.53 % ±9.54% ±12.61% ±16.26%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntBE' buffer='fast' * -10.36 % ±8.95% ±11.84% ±15.26%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntLE' buffer='fast' -6.10 % ±9.02% ±11.93% ±15.38%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntBE' buffer='fast' -5.82 % ±10.51% ±13.90% ±17.92%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntLE' buffer='fast' -2.24 % ±10.64% ±14.07% ±18.14%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntBE' buffer='fast' -8.11 % ±9.44% ±12.48% ±16.08%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntLE' buffer='fast' -9.47 % ±9.84% ±13.01% ±16.78%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntBE' buffer='fast' 3.16 % ±10.00% ±13.22% ±17.04%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntLE' buffer='fast' -5.28 % ±9.36% ±12.37% ±15.95%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntBE' buffer='fast' -7.02 % ±9.79% ±12.94% ±16.68%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntLE' buffer='fast' 3.58 % ±4.44% ±5.89% ±7.60%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntBE' buffer='fast' 8.77 % ±10.87% ±14.37% ±18.52%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntLE' buffer='fast' 7.13 % ±10.74% ±14.20% ±18.31%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntBE' buffer='fast' -4.42 % ±10.50% ±13.88% ±17.89%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntLE' buffer='fast' 5.27 % ±10.88% ±14.39% ±18.54%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntBE' buffer='fast' 3.43 % ±8.39% ±11.09% ±14.30%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntLE' buffer='fast' 1.06 % ±9.58% ±12.67% ±16.33%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntBE' buffer='fast' -6.43 % ±8.85% ±11.71% ±15.09%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntLE' buffer='fast' * -7.32 % ±7.00% ±9.26% ±11.94%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntBE' buffer='fast' -0.98 % ±8.34% ±11.03% ±14.22%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntLE' buffer='fast' -6.84 % ±8.29% ±10.96% ±14.12%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntBE' buffer='fast' -1.69 % ±7.95% ±10.50% ±13.54%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntLE' buffer='fast' 0.74 % ±6.74% ±8.91% ±11.49%
buffers/buffer-read.js n=1000000 type='BigInt64BE' buffer='fast' ** -6.89 % ±4.85% ±6.41% ±8.27%
buffers/buffer-read.js n=1000000 type='BigInt64LE' buffer='fast' *** -8.83 % ±3.99% ±5.27% ±6.80%
buffers/buffer-read.js n=1000000 type='BigUInt64BE' buffer='fast' 1.74 % ±12.19% ±16.11% ±20.77%
buffers/buffer-read.js n=1000000 type='BigUInt64LE' buffer='fast' -9.11 % ±11.43% ±15.11% ±19.48%
buffers/buffer-read.js n=1000000 type='Int16BE' buffer='fast' -12.98 % ±13.44% ±17.77% ±22.91%
buffers/buffer-read.js n=1000000 type='Int16LE' buffer='fast' -10.59 % ±13.31% ±17.59% ±22.68%
buffers/buffer-read.js n=1000000 type='Int32BE' buffer='fast' 0.46 % ±11.95% ±15.79% ±20.36%
buffers/buffer-read.js n=1000000 type='Int32LE' buffer='fast' * -11.86 % ±11.62% ±15.36% ±19.80%
buffers/buffer-read.js n=1000000 type='Int8' buffer='fast' -5.64 % ±15.17% ±20.06% ±25.85%
buffers/buffer-read.js n=1000000 type='UInt16BE' buffer='fast' -5.37 % ±15.05% ±19.90% ±25.65%
buffers/buffer-read.js n=1000000 type='UInt16LE' buffer='fast' -11.82 % ±13.88% ±18.35% ±23.66%
buffers/buffer-read.js n=1000000 type='UInt32BE' buffer='fast' 5.74 % ±14.47% ±19.13% ±24.66%
buffers/buffer-read.js n=1000000 type='UInt32LE' buffer='fast' 8.88 % ±14.75% ±19.50% ±25.13%
buffers/buffer-read.js n=1000000 type='UInt8' buffer='fast' *** -21.37 % ±12.07% ±15.95% ±20.56%
buffers/buffer-slice.js n=1000000 type='fast' 2.31 % ±2.80% ±3.70% ±4.78%
buffers/buffer-slice.js n=1000000 type='slow' -0.89 % ±3.09% ±4.09% ±5.27%
buffers/buffer-slice.js n=1000000 type='subarray' -0.27 % ±2.55% ±3.38% ±4.35%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='false' 0.82 % ±2.00% ±2.65% ±3.41%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='true' 1.01 % ±2.63% ±3.48% ±4.49%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='false' 0.08 % ±0.42% ±0.56% ±0.72%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='true' 0.18 % ±0.46% ±0.60% ±0.78%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='false' * 0.63 % ±0.49% ±0.64% ±0.83%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='true' 0.21 % ±0.44% ±0.59% ±0.76%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='false' 0.30 % ±0.52% ±0.69% ±0.89%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='true' -0.13 % ±0.59% ±0.78% ±1.00%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='false' -0.04 % ±0.23% ±0.30% ±0.38%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='true' 0.10 % ±0.20% ±0.26% ±0.34%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='false' 0.12 % ±0.25% ±0.33% ±0.43%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='true' * 0.27 % ±0.24% ±0.31% ±0.40%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='false' ** -2.03 % ±1.33% ±1.76% ±2.27%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='true' -0.05 % ±1.45% ±1.91% ±2.47%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='false' * 0.89 % ±0.80% ±1.06% ±1.36%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='true' 0.36 % ±0.69% ±0.91% ±1.18%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='false' -0.09 % ±0.90% ±1.18% ±1.53%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='true' -0.29 % ±1.14% ±1.50% ±1.94%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='false' 0.43 % ±0.53% ±0.70% ±0.90%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='true' 0.95 % ±1.44% ±1.90% ±2.45%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='false' 0.25 % ±0.45% ±0.59% ±0.76%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='true' -0.06 % ±0.39% ±0.51% ±0.66%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='false' 0.42 % ±0.78% ±1.03% ±1.33%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='true' -0.23 % ±0.79% ±1.04% ±1.34%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='false' * -1.01 % ±0.87% ±1.15% ±1.49%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='true' -0.05 % ±1.14% ±1.50% ±1.93%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='false' 0.58 % ±0.70% ±0.93% ±1.20%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='true' 0.49 % ±0.65% ±0.87% ±1.12%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='false' *** 1.54 % ±0.55% ±0.72% ±0.93%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='true' ** 0.95 % ±0.63% ±0.83% ±1.07%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='false' *** -0.33 % ±0.11% ±0.14% ±0.18%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='true' *** -0.42 % ±0.13% ±0.17% ±0.22%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='false' -0.01 % ±0.05% ±0.06% ±0.08%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='true' -0.04 % ±0.05% ±0.07% ±0.09%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='false' 0.05 % ±0.08% ±0.10% ±0.13%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='true' 0.02 % ±0.08% ±0.10% ±0.13%
buffers/buffer-tojson.js len=0 n=10000 -2.67 % ±10.61% ±14.04% ±18.10%
buffers/buffer-tojson.js len=256 n=10000 -2.05 % ±2.58% ±3.42% ±4.44%
buffers/buffer-tojson.js len=4096 n=10000 -0.64 % ±1.23% ±1.62% ±2.09%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='' 0.15 % ±2.09% ±2.77% ±3.57%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='ascii' * -2.36 % ±1.80% ±2.37% ±3.06%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='hex' * 1.77 % ±1.77% ±2.34% ±3.02%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='latin1' 0.00 % ±2.98% ±3.93% ±5.07%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='UCS-2' 0.56 % ±1.14% ±1.51% ±1.95%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='utf8' 0.26 % ±2.03% ±2.68% ±3.46%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='ascii' 0.01 % ±2.27% ±3.00% ±3.86%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='hex' *** 3.72 % ±1.92% ±2.53% ±3.26%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='latin1' -0.96 % ±2.01% ±2.66% ±3.43%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='UCS-2' -0.35 % ±1.12% ±1.48% ±1.91%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='utf8' -0.34 % ±1.77% ±2.34% ±3.01%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='' ** -1.69 % ±1.01% ±1.33% ±1.72%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='ascii' * -1.09 % ±0.83% ±1.10% ±1.42%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='hex' *** -0.94 % ±0.48% ±0.64% ±0.82%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='latin1' -0.11 % ±1.02% ±1.35% ±1.74%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='UCS-2' *** -1.81 % ±0.74% ±0.97% ±1.26%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='utf8' *** -1.26 % ±0.66% ±0.88% ±1.13%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='ascii' *** -1.35 % ±0.70% ±0.92% ±1.19%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='hex' 0.05 % ±0.39% ±0.52% ±0.67%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='latin1' 0.21 % ±0.88% ±1.16% ±1.50%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='UCS-2' *** -2.14 % ±0.71% ±0.94% ±1.21%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='utf8' -0.26 % ±0.77% ±1.02% ±1.31%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='' -0.44 % ±1.17% ±1.55% ±2.01%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='ascii' 1.24 % ±2.14% ±2.84% ±3.68%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='hex' 0.63 % ±1.52% ±2.01% ±2.60%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='latin1' -0.36 % ±2.02% ±2.68% ±3.45%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='UCS-2' *** -2.30 % ±1.22% ±1.61% ±2.08%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='utf8' 0.55 % ±1.28% ±1.69% ±2.18%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='ascii' -1.29 % ±1.45% ±1.91% ±2.46%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='hex' 1.21 % ±1.45% ±1.92% ±2.47%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='latin1' 0.82 % ±1.61% ±2.13% ±2.75%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='UCS-2' -0.15 % ±1.16% ±1.53% ±1.97%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='utf8' 1.25 % ±1.60% ±2.12% ±2.73%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='ascii' -0.40 % ±1.09% ±1.44% ±1.86%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='latin1' ** -1.47 % ±0.90% ±1.19% ±1.53%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='ucs2' 0.81 % ±1.55% ±2.05% ±2.64%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='utf8' -1.00 % ±1.18% ±1.56% ±2.01%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='ascii' -0.16 % ±0.95% ±1.25% ±1.62%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='latin1' ** -1.24 % ±0.89% ±1.18% ±1.52%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='ucs2' 0.46 % ±1.33% ±1.76% ±2.26%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='utf8' * -1.25 % ±1.18% ±1.56% ±2.01%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='ascii' 0.14 % ±1.33% ±1.75% ±2.26%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='latin1' 1.24 % ±1.37% ±1.81% ±2.33%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='ucs2' *** -3.23 % ±1.05% ±1.39% ±1.79%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='utf8' -0.51 % ±1.27% ±1.67% ±2.16%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='ascii' -0.02 % ±0.94% ±1.25% ±1.61%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='latin1' *** -1.89 % ±0.89% ±1.18% ±1.52%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='utf8' ** -1.25 % ±0.94% ±1.24% ±1.60%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='ascii' * -1.37 % ±1.15% ±1.53% ±1.97%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='latin1' 0.26 % ±1.06% ±1.40% ±1.81%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='ucs2' * -1.30 % ±1.02% ±1.35% ±1.74%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='utf8' -0.11 % ±1.14% ±1.50% ±1.94%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='ascii' * -1.27 % ±1.20% ±1.59% ±2.05%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='latin1' ** -1.26 % ±0.81% ±1.07% ±1.38%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='ucs2' -0.56 % ±1.06% ±1.40% ±1.81%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='utf8' -0.96 % ±1.07% ±1.42% ±1.83%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='ascii' * 1.40 % ±1.22% ±1.61% ±2.08%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='latin1' 0.89 % ±1.30% ±1.71% ±2.21%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='ucs2' -0.59 % ±1.15% ±1.52% ±1.97%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='utf8' 0.24 % ±1.29% ±1.70% ±2.20%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='ascii' 0.28 % ±1.09% ±1.44% ±1.85%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='latin1' ** -1.80 % ±1.14% ±1.51% ±1.94%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='utf8' 0.45 % ±1.37% ±1.81% ±2.33%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='ascii' -0.29 % ±0.77% ±1.02% ±1.31%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='latin1' -0.45 % ±0.85% ±1.12% ±1.44%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='ucs2' *** 3.00 % ±0.34% ±0.45% ±0.58%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='utf8' * -1.16 % ±0.88% ±1.17% ±1.51%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='ascii' -0.10 % ±0.77% ±1.01% ±1.31%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='latin1' 0.09 % ±0.78% ±1.03% ±1.33%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='ucs2' *** 1.00 % ±0.30% ±0.40% ±0.52%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='utf8' * -1.00 % ±0.79% ±1.05% ±1.35%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='ascii' -0.52 % ±0.75% ±0.99% ±1.28%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='latin1' 0.05 % ±0.71% ±0.94% ±1.21%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='ucs2' *** -0.91 % ±0.50% ±0.66% ±0.84%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='utf8' 0.05 % ±0.64% ±0.85% ±1.10%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='ascii' * -0.62 % ±0.50% ±0.66% ±0.85%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='latin1' -0.17 % ±0.48% ±0.64% ±0.83%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='utf8' ** 1.01 % ±0.62% ±0.82% ±1.06%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='ascii' 1.49 % ±2.53% ±3.35% ±4.31%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='latin1' 2.33 % ±2.56% ±3.39% ±4.37%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='utf8' ** 2.20 % ±1.62% ±2.14% ±2.76%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='ascii' ** 3.85 % ±2.49% ±3.29% ±4.25%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='latin1' 2.05 % ±3.00% ±3.96% ±5.11%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='utf8' 2.41 % ±2.59% ±3.42% ±4.41%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='ascii' 2.21 % ±2.24% ±2.96% ±3.82%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='latin1' -0.42 % ±2.62% ±3.47% ±4.47%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='utf8' 2.45 % ±2.48% ±3.28% ±4.22%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='ascii' * 3.07 % ±2.73% ±3.61% ±4.66%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='latin1' 1.21 % ±2.58% ±3.42% ±4.41%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='utf8' 2.02 % ±2.06% ±2.72% ±3.51%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='' 0.03 % ±0.20% ±0.26% ±0.34%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='ascii' 0.47 % ±0.77% ±1.02% ±1.32%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='hex' ** 0.11 % ±0.08% ±0.11% ±0.14%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='latin1' 0.27 % ±0.93% ±1.23% ±1.59%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf16le' * 1.03 % ±0.79% ±1.05% ±1.35%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf8' *** 1.40 % ±0.57% ±0.76% ±0.98%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='' -0.29 % ±0.87% ±1.15% ±1.48%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='ascii' 0.56 % ±2.96% ±3.91% ±5.04%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='hex' 0.20 % ±0.28% ±0.37% ±0.48%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='latin1' 0.71 % ±2.75% ±3.63% ±4.69%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf16le' * 1.61 % ±1.57% ±2.08% ±2.69%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf8' * 1.25 % ±0.96% ±1.27% ±1.63%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='' -0.24 % ±0.57% ±0.75% ±0.97%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='ascii' -0.10 % ±2.49% ±3.29% ±4.24%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='hex' -0.04 % ±0.13% ±0.17% ±0.22%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='latin1' 0.44 % ±2.24% ±2.97% ±3.83%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf16le' *** 2.20 % ±1.24% ±1.64% ±2.11%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf8' -0.13 % ±0.76% ±1.01% ±1.30%
buffers/buffer-write.js n=1000000 type='BigInt64BE' buffer='fast' -0.15 % ±1.46% ±1.93% ±2.49%
buffers/buffer-write.js n=1000000 type='BigInt64LE' buffer='fast' -0.81 % ±1.19% ±1.58% ±2.03%
buffers/buffer-write.js n=1000000 type='BigUInt64BE' buffer='fast' -1.06 % ±1.38% ±1.83% ±2.36%
buffers/buffer-write.js n=1000000 type='BigUInt64LE' buffer='fast' ** -1.76 % ±1.18% ±1.56% ±2.01%
buffers/buffer-write.js n=1000000 type='DoubleBE' buffer='fast' 2.22 % ±9.00% ±11.90% ±15.34%
buffers/buffer-write.js n=1000000 type='DoubleLE' buffer='fast' 1.35 % ±9.18% ±12.13% ±15.64%
buffers/buffer-write.js n=1000000 type='FloatBE' buffer='fast' -1.53 % ±11.45% ±15.13% ±19.51%
buffers/buffer-write.js n=1000000 type='FloatLE' buffer='fast' 3.21 % ±11.49% ±15.20% ±19.59%
buffers/buffer-write.js n=1000000 type='Int16BE' buffer='fast' -4.43 % ±9.91% ±13.11% ±16.90%
buffers/buffer-write.js n=1000000 type='Int16LE' buffer='fast' -9.43 % ±10.06% ±13.30% ±17.14%
buffers/buffer-write.js n=1000000 type='Int32BE' buffer='fast' 3.78 % ±12.57% ±16.62% ±21.43%
buffers/buffer-write.js n=1000000 type='Int32LE' buffer='fast' 10.68 % ±13.18% ±17.42% ±22.46%
buffers/buffer-write.js n=1000000 type='Int8' buffer='fast' * -7.04 % ±6.72% ±8.88% ±11.45%
buffers/buffer-write.js n=1000000 type='IntBE' buffer='fast' -3.08 % ±6.77% ±8.95% ±11.54%
buffers/buffer-write.js n=1000000 type='IntLE' buffer='fast' -6.37 % ±7.16% ±9.46% ±12.20%
buffers/buffer-write.js n=1000000 type='UInt16BE' buffer='fast' 0.07 % ±10.55% ±13.95% ±17.99%
buffers/buffer-write.js n=1000000 type='UInt16LE' buffer='fast' 0.20 % ±10.68% ±14.12% ±18.21%
buffers/buffer-write.js n=1000000 type='UInt32BE' buffer='fast' -6.04 % ±8.52% ±11.26% ±14.52%
buffers/buffer-write.js n=1000000 type='UInt32LE' buffer='fast' 2.93 % ±8.60% ±11.37% ±14.66%
buffers/buffer-write.js n=1000000 type='UInt8' buffer='fast' 10.91 % ±11.31% ±14.95% ±19.27%
buffers/buffer-write.js n=1000000 type='UIntBE' buffer='fast' 0.76 % ±8.96% ±11.85% ±15.27%
buffers/buffer-write.js n=1000000 type='UIntLE' buffer='fast' -3.33 % ±8.55% ±11.31% ±14.57%
buffers/buffer-zero.js type='buffer' n=1000000 0.21 % ±1.55% ±2.05% ±2.65%
buffers/buffer-zero.js type='string' n=1000000 -0.98 % ±2.42% ±3.20% ±4.13%
buffers/dataview-set.js n=1000000 type='Float32BE' -1.36 % ±3.55% ±4.70% ±6.07%
buffers/dataview-set.js n=1000000 type='Float32LE' 0.33 % ±3.70% ±4.89% ±6.30%
buffers/dataview-set.js n=1000000 type='Float64BE' -0.39 % ±3.78% ±5.00% ±6.45%
buffers/dataview-set.js n=1000000 type='Float64LE' ** -5.63 % ±3.67% ±4.87% ±6.29%
buffers/dataview-set.js n=1000000 type='Int16BE' -1.19 % ±2.84% ±3.76% ±4.84%
buffers/dataview-set.js n=1000000 type='Int16LE' -0.75 % ±2.68% ±3.54% ±4.56%
buffers/dataview-set.js n=1000000 type='Int32BE' 0.22 % ±2.25% ±2.98% ±3.84%
buffers/dataview-set.js n=1000000 type='Int32LE' -1.38 % ±2.17% ±2.87% ±3.69%
buffers/dataview-set.js n=1000000 type='Int8' -0.38 % ±2.24% ±2.97% ±3.84%
buffers/dataview-set.js n=1000000 type='Uint16BE' -1.44 % ±2.47% ±3.27% ±4.21%
buffers/dataview-set.js n=1000000 type='Uint16LE' -2.42 % ±2.52% ±3.34% ±4.30%
buffers/dataview-set.js n=1000000 type='Uint32BE' 0.49 % ±2.14% ±2.83% ±3.66%
buffers/dataview-set.js n=1000000 type='Uint32LE' 0.22 % ±1.44% ±1.90% ±2.45%
buffers/dataview-set.js n=1000000 type='Uint8' 1.02 % ±2.38% ±3.14% ±4.05%
Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 471 comparisons, you can thus
expect the following amount of false-positive results:
23.55 false positives, when considering a 5% risk acceptance (*, **, ***),
4.71 false positives, when considering a 1% risk acceptance (**, ***),
0.47 false positives, when considering a 0.1% risk acceptance (***)
|
Sorry, something went wrong.
Thanks for re-running, I searching now how to solve regression for small string and, this need a extra branch (if condition) but this is a to mean regression for small strings (repeat=1), because I need this question, (this string is big?), this to mean extra branch only have a alternative, use has v8 Utf8LengthV2, I will try create issue for small strings simdutf use in V8 |
Sorry, something went wrong.
|
Instead, we backported it to V8, so I'm closing this pr. |
Sorry, something went wrong.
Original commit message:
Optimize utf8length for utf16 values
Change-Id: I4d9546ab45264852f52361123e86fa3b38d79e45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7142019
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Erik Corry <erikcorry@chromium.org>
Commit-Queue: Erik Corry <erikcorry@chromium.org>
Cr-Commit-Position: refs/heads/main@{#103754}
Refs: v8/v8@b25cd62
PR-URL: nodejs#62354
Refs: nodejs#61601
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Original commit message:
Optimize utf8length for utf16 values
Change-Id: I4d9546ab45264852f52361123e86fa3b38d79e45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7142019
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Erik Corry <erikcorry@chromium.org>
Commit-Queue: Erik Corry <erikcorry@chromium.org>
Cr-Commit-Position: refs/heads/main@{#103754}
Refs: v8/v8@b25cd62
PR-URL: #62354
Refs: #61601
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Original commit message:
Optimize utf8length for utf16 values
Change-Id: I4d9546ab45264852f52361123e86fa3b38d79e45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7142019
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Erik Corry <erikcorry@chromium.org>
Commit-Queue: Erik Corry <erikcorry@chromium.org>
Cr-Commit-Position: refs/heads/main@{#103754}
Refs: v8/v8@b25cd62
PR-URL: #62354
Refs: #61601
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Original commit message:
Optimize utf8length for utf16 values
Change-Id: I4d9546ab45264852f52361123e86fa3b38d79e45
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7142019
Reviewed-by: Anton Bikineev <bikineev@chromium.org>
Reviewed-by: Erik Corry <erikcorry@chromium.org>
Commit-Queue: Erik Corry <erikcorry@chromium.org>
Cr-Commit-Position: refs/heads/main@{#103754}
Refs: v8/v8@b25cd62
PR-URL: nodejs#62354
Refs: nodejs#61601
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
| Back | FazBrowse Home | New Git URL |
I used stringView in simdutf for large strings, small strings continue as they are
The benchmark result for buffers is very long, so I created a gist for this benchmark result
all results:
➜ node git:(mert/stringView/buffer) ✗ node-benchmark-compare ./result.csv confidence improvement accuracy (*) (**) (***) buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='four_bytes' 1.49 % ±2.19% ±2.95% ±3.93% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='latin1' 0.71 % ±2.58% ±3.51% ±4.72% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='one_byte' 0.12 % ±2.68% ±3.62% ±4.83% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='three_bytes' * 2.57 % ±2.24% ±3.03% ±4.03% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='two_bytes' -0.03 % ±2.96% ±4.00% ±5.35% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='four_bytes' 1.25 % ±1.81% ±2.44% ±3.24% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='latin1' 0.29 % ±1.89% ±2.55% ±3.39% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='one_byte' 0.92 % ±2.08% ±2.80% ±3.73% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='three_bytes' 0.63 % ±1.63% ±2.19% ±2.92% buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='two_bytes' 2.27 % ±2.71% ±3.66% ±4.88% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='four_bytes' -0.01 % ±2.29% ±3.09% ±4.12% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='latin1' 1.14 % ±2.18% ±2.94% ±3.91% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='one_byte' 1.15 % ±2.48% ±3.35% ±4.46% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='three_bytes' 1.55 % ±2.14% ±2.89% ±3.84% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='two_bytes' 0.29 % ±2.24% ±3.03% ±4.03% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='four_bytes' *** 216.82 % ±15.57% ±21.51% ±29.69% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='latin1' -0.06 % ±1.68% ±2.27% ±3.02% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='one_byte' ** 2.48 % ±1.54% ±2.09% ±2.78% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='three_bytes' *** 207.83 % ±4.55% ±6.26% ±8.59% buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='two_bytes' *** 210.70 % ±5.83% ±8.06% ±11.15% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='four_bytes' -0.84 % ±2.18% ±2.97% ±3.98% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='latin1' 0.65 % ±2.09% ±2.83% ±3.76% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='one_byte' 2.12 % ±2.26% ±3.08% ±4.15% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='three_bytes' 0.85 % ±2.35% ±3.17% ±4.21% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='two_bytes' 0.56 % ±2.32% ±3.14% ±4.21% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='four_bytes' -0.01 % ±1.83% ±2.46% ±3.28% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='latin1' 0.21 % ±1.93% ±2.61% ±3.48% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='one_byte' 1.56 % ±1.82% ±2.46% ±3.27% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='three_bytes' 0.20 % ±1.48% ±2.00% ±2.66% buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='two_bytes' 1.10 % ±1.85% ±2.49% ±3.32% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='four_bytes' -1.46 % ±2.05% ±2.77% ±3.68% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='latin1' * -4.38 % ±4.22% ±5.73% ±7.68% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='one_byte' 1.62 % ±3.54% ±4.85% ±6.62% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='three_bytes' -0.72 % ±1.49% ±2.01% ±2.67% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='two_bytes' 1.30 % ±2.01% ±2.71% ±3.61% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='four_bytes' *** 241.57 % ±16.03% ±21.83% ±29.44% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='latin1' -0.11 % ±1.49% ±2.01% ±2.67% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='one_byte' 1.09 % ±1.55% ±2.09% ±2.78% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='three_bytes' *** 345.77 % ±19.42% ±26.39% ±35.52% buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='two_bytes' *** 320.12 % ±13.94% ±18.83% ±25.06% Be aware that when doing many comparisons the risk of a false-positive result increases. In this case, there are 40 comparisons, you can thus expect the following amount of false-positive results: 2.00 false positives, when considering a 5% risk acceptance (*, **, ***), 0.40 false positives, when considering a 1% risk acceptance (**, ***), 0.04 false positives, when considering a 0.1% risk acceptance (***) ➜ node git:(mert/stringView/buffer) ✗