-
-
Notifications
You must be signed in to change notification settings - Fork 31.4k
buffer: make methods work on Uint8Array instances #56578
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
c35a917
to
c73de47
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #56578 +/- ##
==========================================
- Coverage 90.26% 90.26% -0.01%
==========================================
Files 630 630
Lines 186168 186187 +19
Branches 36475 36468 -7
==========================================
+ Hits 168053 168064 +11
- Misses 10977 10984 +7
- Partials 7138 7139 +1
🚀 New features to boost your workflow:
|
lib/internal/buffer.js
Outdated
if (byteLength === 1) | ||
return this.readInt8(offset); | ||
return FunctionPrototypeCall(readInt8, this, offset); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is already (correctly imo) marked as needing a benchmark CI run, but just as a heads up, if this does turn out to be an issue, it shouldn't be a big deal to create non-prototype versions of these functions that don't use this
as the target
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea I was thinking of that as an alternative implementation but took the route of least blast radius to start, happy to go through and change them to match the other int parsers that take the argument. (Should we go ahead and do that regardless of the benchmarks?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we go ahead and do that regardless of the benchmarks?
No strong preferences from my side, maybe somebody else has one. But for now, I'd say we can fix the failures reported by GHA, then run regular CI + benchmark CI and see what happens
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='two_bytes' ** -1.37 % ±0.99% ±1.32% ±1.71%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='latin1' ** 2.49 % ±1.83% ±2.45% ±3.24%
buffers/buffer-creation.js n=600000 len=1024 type='slow-allocUnsafe' *** -3.01 % ±1.32% ±1.76% ±2.29%
buffers/buffer-creation.js n=600000 len=4096 type='fast-allocUnsafe' *** -4.03 % ±2.22% ±2.96% ±3.85%
buffers/buffer-creation.js n=600000 len=8192 type='fast-allocUnsafe' ** -2.50 % ±1.64% ±2.19% ±2.86%
buffers/buffer-creation.js n=600000 len=8192 type='slow-allocUnsafe' ** -2.49 % ±1.44% ±1.92% ±2.50%
buffers/buffer-fill.js n=20000 size=8192 type='fill("t", 0)' ** -4.09 % ±3.06% ±4.09% ±5.37%
buffers/buffer-from.js n=800000 len=100 source='uint16array' *** -2.03 % ±0.98% ±1.31% ±1.71%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer-middle' ** 1.65 % ±1.21% ±1.61% ±2.09%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer' ** 1.82 % ±1.10% ±1.46% ±1.91%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='false' ** 0.75 % ±0.48% ±0.64% ±0.84%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='false' ** -1.57 % ±1.08% ±1.45% ±1.90%
buffers/dataview-set.js n=1000000 type='Uint16BE' *** -24.92 % ±1.98% ±2.65% ±3.50%
buffers/dataview-set.js n=1000000 type='Uint16LE' *** -25.11 % ±0.99% ±1.32% ±1.72%
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 (***)
Just filtered for the two and three star confidence ones and the changes are small, except for oddly the dataview tests, which just happen to be in the buffers folder, not sure how I could've changed that value but maybe this won't reproduce in CI? 🤞🏻
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the up-to-minus-4% regressions on the others are also a bit concerning though 😕
To me this does feel like an impact we'd want to avoid if we can at all
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SGTM, I'll try switching over to direct invocations and see if we climb back up
c73de47
to
d2841d6
Compare
// Sanity check (remove if the internals of Buffer.from change): | ||
// The custom implementation of utf8Write should cause Buffer.from() to encode | ||
// traversalPath instead of the sanitized output of resolve(). | ||
assert.strictEqual(Buffer.from(resolve(traversalPathWithExtraChars)).toString(), traversalPath); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I understood correctly this can be deleted now that Buffer.prototype.utf8Write
tampering doesn't impact from/toString. However, the test still has value (along with the tampering code above) if that were to be reversed at any point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
toString()
write()
[Symbol.for('nodejs.util.inspect.custom')]()
includes()
readIntBE()
(byteLength: 4, 2, 1)readIntLE()
(byteLength: 4, 2, 1)readUIntBE()
(byteLength: 4, 2, 1)readUIntLE()
(byteLength: 4, 2, 1)
still need to update the docs, just noting the functions changed here
fde97b3
to
01c4725
Compare
61c5588
to
e6e797d
Compare
4073cae
to
6c65286
Compare
Removes the reliance on prototype bound methods internally so that Uint8Arrays can be set as the bound `this` value when calling the various Buffer methods. Introduces some additional tamper protection by removing internal reliance on writable properties. Fixes: nodejs#56577
6c65286
to
4a2f0b2
Compare
Running: node benchmark/compare.js --runs 10 --old ./node-main --new ./node-buffer-generic-methods buffers > compare-buffer-generic-methods.csv Using the node version of the compare tool: node-benchmark-compare compare-buffer-generic-methods.csv Gave these results: confidence improvement accuracy (*) (**) (***)
buffers/buffer-atob.js n=1000000 size=128 -0.33 % ±1.48% ±2.06% ±2.87%
buffers/buffer-atob.js n=1000000 size=16 -0.43 % ±1.89% ±2.60% ±3.57%
buffers/buffer-atob.js n=1000000 size=32 0.20 % ±2.27% ±3.12% ±4.27%
buffers/buffer-atob.js n=1000000 size=64 1.98 % ±2.06% ±2.95% ±4.29%
buffers/buffer-base64-decode-wrapped.js n=32 linesCount=524288 charsPerLine=76 1.88 % ±4.92% ±7.02% ±10.20%
buffers/buffer-base64-decode.js size=8388608 n=32 -3.53 % ±6.38% ±9.12% ±13.32%
buffers/buffer-base64-encode.js n=32 len=67108864 0.41 % ±3.63% ±4.97% ±6.77%
buffers/buffer-base64url-decode.js size=8388608 n=32 -1.71 % ±3.26% ±4.62% ±6.65%
buffers/buffer-base64url-encode.js n=32 len=67108864 0.95 % ±1.94% ±2.70% ±3.76%
buffers/buffer-btoa.js n=1000000 size=1024 -0.39 % ±0.72% ±0.99% ±1.35%
buffers/buffer-btoa.js n=1000000 size=128 -0.86 % ±1.39% ±1.90% ±2.59%
buffers/buffer-btoa.js n=1000000 size=16 0.09 % ±0.74% ±1.01% ±1.39%
buffers/buffer-btoa.js n=1000000 size=256 -0.85 % ±2.47% ±3.42% ±4.75%
buffers/buffer-btoa.js n=1000000 size=32 0.33 % ±0.54% ±0.74% ±1.01%
buffers/buffer-btoa.js n=1000000 size=64 -0.22 % ±0.73% ±1.03% ±1.46%
buffers/buffer-bytelength-buffer.js n=4000000 len=16 -0.05 % ±0.63% ±0.86% ±1.18%
buffers/buffer-bytelength-buffer.js n=4000000 len=2 -4.01 % ±8.08% ±11.59% ±17.02%
buffers/buffer-bytelength-buffer.js n=4000000 len=256 1.11 % ±1.67% ±2.36% ±3.38%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='four_bytes' 0.02 % ±0.68% ±0.95% ±1.33%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='latin1' 1.62 % ±3.25% ±4.45% ±6.07%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='one_byte' -0.63 % ±2.80% ±3.86% ±5.29%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='three_bytes' -0.52 % ±4.01% ±5.52% ±7.56%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='base64' type='two_bytes' 0.72 % ±2.18% ±3.02% ±4.20%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='four_bytes' -0.04 % ±0.68% ±0.94% ±1.28%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='latin1' -2.31 % ±4.13% ±5.84% ±8.37%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='one_byte' -1.07 % ±1.18% ±1.69% ±2.48%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='three_bytes' -1.35 % ±3.37% ±4.76% ±6.82%
buffers/buffer-bytelength-string.js n=4000000 repeat=1 encoding='utf8' type='two_bytes' -0.15 % ±0.48% ±0.67% ±0.94%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='four_bytes' 0.05 % ±7.36% ±10.11% ±13.83%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='latin1' -0.07 % ±0.88% ±1.23% ±1.71%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='one_byte' -1.12 % ±3.74% ±5.14% ±7.01%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='three_bytes' 2.65 % ±3.43% ±4.72% ±6.47%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='base64' type='two_bytes' 1.05 % ±4.78% ±6.64% ±9.22%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='four_bytes' -0.94 % ±1.99% ±2.80% ±3.98%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='latin1' 0.07 % ±1.60% ±2.22% ±3.11%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='one_byte' 0.31 % ±0.80% ±1.11% ±1.57%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='three_bytes' -1.70 % ±4.80% ±6.84% ±9.92%
buffers/buffer-bytelength-string.js n=4000000 repeat=16 encoding='utf8' type='two_bytes' -0.55 % ±0.98% ±1.36% ±1.86%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='four_bytes' 0.76 % ±3.63% ±4.98% ±6.79%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='latin1' -0.48 % ±2.06% ±2.91% ±4.15%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='one_byte' -2.11 % ±4.75% ±6.56% ±9.08%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='three_bytes' 0.18 % ±3.68% ±5.04% ±6.86%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='base64' type='two_bytes' 1.22 % ±4.41% ±6.04% ±8.25%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='four_bytes' -0.60 % ±2.68% ±3.68% ±5.01%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='latin1' 0.33 % ±1.31% ±1.81% ±2.48%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='one_byte' -0.88 % ±4.50% ±6.24% ±8.67%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='three_bytes' -2.61 % ±6.54% ±9.34% ±13.61%
buffers/buffer-bytelength-string.js n=4000000 repeat=2 encoding='utf8' type='two_bytes' 0.03 % ±0.79% ±1.09% ±1.50%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='four_bytes' -0.36 % ±3.78% ±5.18% ±7.06%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='latin1' 2.73 % ±5.85% ±8.20% ±11.60%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='one_byte' 0.94 % ±2.95% ±4.04% ±5.51%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='three_bytes' -1.58 % ±2.79% ±4.00% ±5.85%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='base64' type='two_bytes' -0.50 % ±4.02% ±5.54% ±7.61%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='four_bytes' -0.41 % ±1.03% ±1.42% ±1.94%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='latin1' 0.32 % ±0.86% ±1.18% ±1.62%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='one_byte' ** -1.90 % ±1.27% ±1.82% ±2.67%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='three_bytes' -0.47 % ±0.86% ±1.21% ±1.72%
buffers/buffer-bytelength-string.js n=4000000 repeat=256 encoding='utf8' type='two_bytes' -2.18 % ±3.98% ±5.69% ±8.31%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16 -1.38 % ±2.93% ±4.08% ±5.70%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=16386 1.46 % ±1.62% ±2.28% ±3.24%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=4096 * -1.85 % ±1.40% ±1.98% ±2.84%
buffers/buffer-compare-instance-method.js n=1000000 args=1 size=512 0.17 % ±1.30% ±1.81% ±2.53%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16 *** 2.89 % ±0.64% ±0.89% ±1.22%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=16386 1.50 % ±1.84% ±2.57% ±3.61%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=4096 * 3.19 % ±2.31% ±3.25% ±4.62%
buffers/buffer-compare-instance-method.js n=1000000 args=2 size=512 * 6.97 % ±6.06% ±8.71% ±12.80%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16 *** 2.68 % ±1.05% ±1.46% ±2.04%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=16386 0.12 % ±1.20% ±1.64% ±2.24%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=4096 -0.68 % ±3.14% ±4.47% ±6.48%
buffers/buffer-compare-instance-method.js n=1000000 args=5 size=512 *** 2.84 % ±0.92% ±1.26% ±1.71%
buffers/buffer-compare-offset.js n=1000000 size=16 method='offset' *** 1.85 % ±0.50% ±0.69% ±0.95%
buffers/buffer-compare-offset.js n=1000000 size=16 method='slice' ** 1.07 % ±0.71% ±1.00% ±1.43%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='offset' *** 2.51 % ±0.32% ±0.43% ±0.59%
buffers/buffer-compare-offset.js n=1000000 size=16386 method='slice' -0.41 % ±1.20% ±1.65% ±2.26%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='offset' *** 2.96 % ±0.92% ±1.30% ±1.86%
buffers/buffer-compare-offset.js n=1000000 size=4096 method='slice' -0.18 % ±1.23% ±1.69% ±2.31%
buffers/buffer-compare-offset.js n=1000000 size=512 method='offset' *** 2.53 % ±0.64% ±0.88% ±1.22%
buffers/buffer-compare-offset.js n=1000000 size=512 method='slice' -0.38 % ±1.43% ±1.96% ±2.67%
buffers/buffer-compare.js n=1000000 size=16 0.33 % ±1.12% ±1.55% ±2.12%
buffers/buffer-compare.js n=1000000 size=16386 0.59 % ±1.41% ±1.97% ±2.76%
buffers/buffer-compare.js n=1000000 size=4096 0.27 % ±0.60% ±0.82% ±1.13%
buffers/buffer-compare.js n=1000000 size=512 0.53 % ±1.02% ±1.43% ±2.04%
buffers/buffer-concat-fill.js n=800000 extraSize=1 0.63 % ±2.30% ±3.18% ±4.40%
buffers/buffer-concat-fill.js n=800000 extraSize=1024 -0.05 % ±4.65% ±6.38% ±8.70%
buffers/buffer-concat-fill.js n=800000 extraSize=256 1.99 % ±4.19% ±5.79% ±7.97%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=16 1.57 % ±1.98% ±2.74% ±3.81%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=1 pieces=4 6.34 % ±8.16% ±11.62% ±16.88%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=16 1.05 % ±7.05% ±9.66% ±13.16%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=16 pieces=4 1.81 % ±9.27% ±12.71% ±17.31%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=16 0.20 % ±2.85% ±3.91% ±5.33%
buffers/buffer-concat.js n=800000 withTotalLength=0 pieceSize=256 pieces=4 * 5.00 % ±4.50% ±6.34% ±9.02%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=16 3.95 % ±4.90% ±6.87% ±9.71%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=1 pieces=4 * 3.30 % ±3.03% ±4.18% ±5.75%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=16 0.71 % ±2.41% ±3.31% ±4.52%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=16 pieces=4 10.85 % ±12.14% ±17.33% ±25.23%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=16 -0.86 % ±3.06% ±4.24% ±5.89%
buffers/buffer-concat.js n=800000 withTotalLength=1 pieceSize=256 pieces=4 3.84 % ±4.50% ±6.36% ±9.11%
buffers/buffer-copy.js n=6000000 partial='false' bytes=1024 -2.50 % ±6.74% ±9.67% ±14.20%
buffers/buffer-copy.js n=6000000 partial='false' bytes=128 0.22 % ±0.74% ±1.03% ±1.42%
buffers/buffer-copy.js n=6000000 partial='false' bytes=8 * 0.84 % ±0.84% ±1.18% ±1.67%
buffers/buffer-copy.js n=6000000 partial='true' bytes=1024 4.44 % ±8.55% ±12.28% ±18.06%
buffers/buffer-copy.js n=6000000 partial='true' bytes=128 0.48 % ±0.84% ±1.17% ±1.65%
buffers/buffer-copy.js n=6000000 partial='true' bytes=8 2.00 % ±3.93% ±5.61% ±8.19%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc-fill' 0.24 % ±2.53% ±3.49% ±4.81%
buffers/buffer-creation.js n=600000 len=10 type='fast-alloc' -1.11 % ±3.17% ±4.44% ±6.26%
buffers/buffer-creation.js n=600000 len=10 type='fast-allocUnsafe' 3.02 % ±4.03% ±5.67% ±8.06%
buffers/buffer-creation.js n=600000 len=10 type='slow-allocUnsafe' -0.09 % ±2.45% ±3.37% ±4.61%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc-fill' 1.88 % ±8.54% ±11.79% ±16.26%
buffers/buffer-creation.js n=600000 len=1024 type='fast-alloc' 2.89 % ±8.55% ±11.76% ±16.15%
buffers/buffer-creation.js n=600000 len=1024 type='fast-allocUnsafe' 0.66 % ±2.98% ±4.09% ±5.58%
buffers/buffer-creation.js n=600000 len=1024 type='slow-allocUnsafe' 2.80 % ±6.70% ±9.22% ±12.65%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc-fill' 0.37 % ±3.85% ±5.30% ±7.28%
buffers/buffer-creation.js n=600000 len=4096 type='fast-alloc' 0.10 % ±3.19% ±4.39% ±6.04%
buffers/buffer-creation.js n=600000 len=4096 type='fast-allocUnsafe' 0.95 % ±2.04% ±2.87% ±4.07%
buffers/buffer-creation.js n=600000 len=4096 type='slow-allocUnsafe' 0.24 % ±3.38% ±4.63% ±6.31%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc-fill' -0.92 % ±4.70% ±6.48% ±8.90%
buffers/buffer-creation.js n=600000 len=8192 type='fast-alloc' 1.32 % ±7.52% ±10.37% ±14.26%
buffers/buffer-creation.js n=600000 len=8192 type='fast-allocUnsafe' -0.73 % ±6.19% ±8.49% ±11.59%
buffers/buffer-creation.js n=600000 len=8192 type='slow-allocUnsafe' 3.44 % ±7.31% ±10.12% ±14.03%
buffers/buffer-equals.js n=1000000 difflen='false' size=0 -0.72 % ±1.13% ±1.57% ±2.18%
buffers/buffer-equals.js n=1000000 difflen='false' size=16386 0.16 % ±0.25% ±0.35% ±0.47%
buffers/buffer-equals.js n=1000000 difflen='false' size=512 ** -1.11 % ±0.74% ±1.01% ±1.39%
buffers/buffer-equals.js n=1000000 difflen='true' size=0 -0.23 % ±1.02% ±1.40% ±1.92%
buffers/buffer-equals.js n=1000000 difflen='true' size=16386 -0.97 % ±1.56% ±2.21% ±3.16%
buffers/buffer-equals.js n=1000000 difflen='true' size=512 -0.71 % ±1.58% ±2.22% ±3.15%
buffers/buffer-fill.js n=20000 size=65536 type='fill()' * -0.68 % ±0.53% ±0.74% ±1.01%
buffers/buffer-fill.js n=20000 size=65536 type='fill(0)' -0.63 % ±1.01% ±1.39% ±1.90%
buffers/buffer-fill.js n=20000 size=65536 type='fill(100)' -0.68 % ±1.60% ±2.28% ±3.29%
buffers/buffer-fill.js n=20000 size=65536 type='fill(400)' 0.51 % ±1.18% ±1.67% ±2.42%
buffers/buffer-fill.js n=20000 size=65536 type='fill(Buffer.alloc(1), 0)' -0.84 % ±2.05% ±2.85% ±3.98%
buffers/buffer-fill.js n=20000 size=65536 type='fill(t, 0, utf8)' -0.86 % ±1.44% ±2.05% ±2.99%
buffers/buffer-fill.js n=20000 size=65536 type='fill(t, 0)' 0.62 % ±1.36% ±1.88% ±2.60%
buffers/buffer-fill.js n=20000 size=65536 type='fill(t, utf8)' -0.84 % ±0.87% ±1.21% ±1.68%
buffers/buffer-fill.js n=20000 size=65536 type='fill(t)' 0.67 % ±1.49% ±2.04% ±2.77%
buffers/buffer-fill.js n=20000 size=65536 type='fill(test)' -0.87 % ±2.72% ±3.80% ±5.33%
buffers/buffer-fill.js n=20000 size=8192 type='fill()' 0.39 % ±3.55% ±4.89% ±6.72%
buffers/buffer-fill.js n=20000 size=8192 type='fill(0)' -0.83 % ±7.11% ±9.76% ±13.34%
buffers/buffer-fill.js n=20000 size=8192 type='fill(100)' -3.35 % ±7.57% ±10.38% ±14.14%
buffers/buffer-fill.js n=20000 size=8192 type='fill(400)' 0.51 % ±6.61% ±9.05% ±12.33%
buffers/buffer-fill.js n=20000 size=8192 type='fill(Buffer.alloc(1), 0)' -1.45 % ±5.19% ±7.12% ±9.71%
buffers/buffer-fill.js n=20000 size=8192 type='fill(t, 0, utf8)' -0.07 % ±3.22% ±4.41% ±6.02%
buffers/buffer-fill.js n=20000 size=8192 type='fill(t, 0)' -1.44 % ±3.32% ±4.56% ±6.24%
buffers/buffer-fill.js n=20000 size=8192 type='fill(t, utf8)' 0.29 % ±3.81% ±5.22% ±7.11%
buffers/buffer-fill.js n=20000 size=8192 type='fill(t)' 0.89 % ±3.25% ±4.46% ±6.09%
buffers/buffer-fill.js n=20000 size=8192 type='fill(test)' -0.73 % ±1.47% ±2.01% ±2.75%
buffers/buffer-from.js n=800000 len=100 source='array' -0.07 % ±0.55% ±0.75% ±1.03%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer-middle' 0.77 % ±1.00% ±1.39% ±1.92%
buffers/buffer-from.js n=800000 len=100 source='arraybuffer' -0.61 % ±1.61% ±2.22% ±3.03%
buffers/buffer-from.js n=800000 len=100 source='buffer' 0.67 % ±1.42% ±2.03% ±2.97%
buffers/buffer-from.js n=800000 len=100 source='object' 0.52 % ±2.74% ±3.75% ±5.12%
buffers/buffer-from.js n=800000 len=100 source='string-base64' -1.31 % ±6.36% ±9.11% ±13.32%
buffers/buffer-from.js n=800000 len=100 source='string-utf8' -0.31 % ±1.91% ±2.64% ±3.65%
buffers/buffer-from.js n=800000 len=100 source='string' -1.34 % ±1.59% ±2.23% ±3.16%
buffers/buffer-from.js n=800000 len=100 source='uint16array' 0.34 % ±1.80% ±2.56% ±3.71%
buffers/buffer-from.js n=800000 len=100 source='uint8array' 0.58 % ±2.25% ±3.09% ±4.23%
buffers/buffer-from.js n=800000 len=2048 source='array' 0.02 % ±0.51% ±0.70% ±0.95%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer-middle' -0.15 % ±0.85% ±1.17% ±1.62%
buffers/buffer-from.js n=800000 len=2048 source='arraybuffer' -0.87 % ±1.69% ±2.33% ±3.22%
buffers/buffer-from.js n=800000 len=2048 source='buffer' 3.15 % ±4.31% ±6.09% ±8.70%
buffers/buffer-from.js n=800000 len=2048 source='object' 0.10 % ±3.95% ±5.41% ±7.37%
buffers/buffer-from.js n=800000 len=2048 source='string-base64' -1.16 % ±1.91% ±2.62% ±3.59%
buffers/buffer-from.js n=800000 len=2048 source='string-utf8' -0.15 % ±2.00% ±2.79% ±3.92%
buffers/buffer-from.js n=800000 len=2048 source='string' 0.10 % ±3.59% ±4.93% ±6.76%
buffers/buffer-from.js n=800000 len=2048 source='uint16array' -0.45 % ±3.09% ±4.24% ±5.77%
buffers/buffer-from.js n=800000 len=2048 source='uint8array' -1.10 % ±2.50% ±3.55% ±5.14%
buffers/buffer-hex-decode.js n=1000000 len=1024 -0.66 % ±1.44% ±1.98% ±2.73%
buffers/buffer-hex-decode.js n=1000000 len=64 0.40 % ±1.32% ±1.85% ±2.63%
buffers/buffer-hex-encode.js n=1000000 len=1024 -1.44 % ±2.33% ±3.21% ±4.41%
buffers/buffer-hex-encode.js n=1000000 len=64 -5.64 % ±5.78% ±8.24% ±11.95%
buffers/buffer-indexof-number.js n=1000000 value=64 0.60 % ±1.87% ±2.58% ±3.56%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='--l' 0.34 % ±0.80% ±1.10% ±1.53%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='@' 0.22 % ±1.60% ±2.21% ±3.03%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='</i> to the Caterpillar' 0.83 % ±1.06% ±1.48% ±2.07%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='aaaaaaaaaaaaaaaaa' 0.08 % ±1.52% ±2.09% ±2.87%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Alice' 1.75 % ±5.86% ±8.11% ±11.24%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='found it very' -2.06 % ±2.22% ±3.16% ±4.58%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Gryphon' -0.89 % ±1.44% ±2.01% ±2.81%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='neighbouring pool' -0.74 % ±1.07% ±1.51% ±2.17%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='Ou est ma chatte?' -0.77 % ±1.10% ±1.52% ±2.10%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='SQ' 0.00 % ±0.66% ±0.90% ±1.24%
buffers/buffer-indexof.js n=50000 type='buffer' encoding='undefined' search='venture to go near the house till she had brought herself down to' 2.84 % ±4.43% ±6.34% ±9.26%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='--l' -1.10 % ±1.39% ±1.96% ±2.77%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='@' 0.96 % ±1.23% ±1.71% ±2.38%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='</i> to the Caterpillar' -1.21 % ±1.30% ±1.86% ±2.69%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='aaaaaaaaaaaaaaaaa' -0.61 % ±1.28% ±1.79% ±2.53%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Alice' 3.11 % ±4.10% ±5.64% ±7.74%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='found it very' 0.14 % ±0.73% ±1.00% ±1.37%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Gryphon' -0.56 % ±2.89% ±4.04% ±5.67%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='neighbouring pool' -0.19 % ±1.06% ±1.45% ±2.00%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='Ou est ma chatte?' -3.04 % ±6.25% ±8.95% ±13.10%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='SQ' -0.01 % ±0.56% ±0.76% ±1.04%
buffers/buffer-indexof.js n=50000 type='string' encoding='ucs2' search='venture to go near the house till she had brought herself down to' 1.35 % ±2.87% ±4.10% ±5.99%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='--l' -1.20 % ±2.43% ±3.46% ±5.02%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='@' 1.17 % ±1.57% ±2.21% ±3.13%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='</i> to the Caterpillar' -0.39 % ±1.30% ±1.78% ±2.43%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='aaaaaaaaaaaaaaaaa' 0.02 % ±1.08% ±1.48% ±2.02%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Alice' 4.10 % ±14.18% ±19.57% ±26.97%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='found it very' -0.19 % ±0.89% ±1.23% ±1.69%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Gryphon' 0.67 % ±3.06% ±4.33% ±6.21%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='neighbouring pool' -0.35 % ±0.95% ±1.30% ±1.77%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='Ou est ma chatte?' -0.14 % ±4.68% ±6.44% ±8.84%
buffers/buffer-indexof.js n=50000 type='string' encoding='utf8' search='SQ' 0.65 % ±0.72% ±1.00% ±1.39%
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.29 % ±1.72% ±2.43% ±3.48%
buffers/buffer-isascii.js input='hello world' length='long' n=20000000 -1.53 % ±1.84% ±2.54% ±3.51%
buffers/buffer-isascii.js input='hello world' length='short' n=20000000 -1.45 % ±2.05% ±2.81% ±3.83%
buffers/buffer-isutf8.js input='∀x∈ℝ: ⌈x⌉ = −⌊−x⌋' length='long' n=20000000 0.21 % ±1.07% ±1.47% ±2.00%
buffers/buffer-isutf8.js input='∀x∈ℝ: ⌈x⌉ = −⌊−x⌋' length='short' n=20000000 * 4.70 % ±3.42% ±4.73% ±6.55%
buffers/buffer-isutf8.js input='regular string' length='long' n=20000000 0.56 % ±2.16% ±2.96% ±4.04%
buffers/buffer-isutf8.js input='regular string' length='short' n=20000000 * 3.03 % ±2.97% ±4.07% ±5.56%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=16386 -0.40 % ±0.61% ±0.84% ±1.15%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=4096 * 1.12 % ±1.00% ±1.38% ±1.89%
buffers/buffer-iterate.js n=1000 method='for' type='fast' size=512 1.39 % ±4.66% ±6.44% ±8.89%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=16386 0.89 % ±2.13% ±3.05% ±4.47%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=4096 0.16 % ±0.72% ±0.99% ±1.36%
buffers/buffer-iterate.js n=1000 method='forOf' type='fast' size=512 1.53 % ±2.12% ±2.94% ±4.08%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=16386 0.74 % ±1.40% ±1.99% ±2.89%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=4096 3.71 % ±8.14% ±11.69% ±17.19%
buffers/buffer-iterate.js n=1000 method='iterator' type='fast' size=512 -0.34 % ±1.22% ±1.68% ±2.29%
buffers/buffer-normalize-encoding.js n=1000000 encoding='ascii' 1.07 % ±1.58% ±2.18% ±3.03%
buffers/buffer-normalize-encoding.js n=1000000 encoding='base64' -1.20 % ±2.30% ±3.15% ±4.29%
buffers/buffer-normalize-encoding.js n=1000000 encoding='BASE64' -1.71 % ±4.16% ±5.96% ±8.75%
buffers/buffer-normalize-encoding.js n=1000000 encoding='binary' * -1.45 % ±1.19% ±1.64% ±2.25%
buffers/buffer-normalize-encoding.js n=1000000 encoding='hex' -1.35 % ±1.60% ±2.22% ±3.10%
buffers/buffer-normalize-encoding.js n=1000000 encoding='HEX' 0.69 % ±1.22% ±1.69% ±2.35%
buffers/buffer-normalize-encoding.js n=1000000 encoding='latin1' * 1.64 % ±1.62% ±2.23% ±3.06%
buffers/buffer-normalize-encoding.js n=1000000 encoding='LATIN1' 3.16 % ±4.73% ±6.77% ±9.89%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS-2' -1.88 % ±4.84% ±6.94% ±10.16%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UCS2' -0.46 % ±1.29% ±1.78% ±2.45%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-16le' -0.66 % ±2.41% ±3.32% ±4.53%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF-16LE' 0.50 % ±1.60% ±2.20% ±3.00%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf-8' -1.12 % ±2.76% ±3.79% ±5.17%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf16le' 1.26 % ±2.66% ±3.65% ±4.97%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF16LE' 0.24 % ±1.80% ±2.47% ±3.37%
buffers/buffer-normalize-encoding.js n=1000000 encoding='utf8' -0.26 % ±2.61% ±3.57% ±4.87%
buffers/buffer-normalize-encoding.js n=1000000 encoding='UTF8' 7.19 % ±13.37% ±19.14% ±28.00%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Double' 0.40 % ±2.72% ±3.74% ±5.13%
buffers/buffer-read-float.js n=1000000 value='big' endian='LE' type='Float' 1.14 % ±3.84% ±5.28% ±7.23%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Double' 0.85 % ±2.32% ±3.18% ±4.33%
buffers/buffer-read-float.js n=1000000 value='inf' endian='LE' type='Float' * 3.68 % ±3.06% ±4.20% ±5.73%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Double' 0.87 % ±2.36% ±3.29% ±4.61%
buffers/buffer-read-float.js n=1000000 value='nan' endian='LE' type='Float' -2.84 % ±3.56% ±4.95% ±6.90%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Double' -1.40 % ±3.48% ±4.78% ±6.54%
buffers/buffer-read-float.js n=1000000 value='small' endian='LE' type='Float' -1.04 % ±4.71% ±6.45% ±8.80%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Double' -0.73 % ±2.65% ±3.65% ±5.02%
buffers/buffer-read-float.js n=1000000 value='zero' endian='LE' type='Float' 0.46 % ±2.87% ±3.94% ±5.38%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntBE' buffer='fast' 0.94 % ±2.45% ±3.36% ±4.58%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='IntLE' buffer='fast' 0.99 % ±2.58% ±3.55% ±4.84%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntBE' buffer='fast' -0.02 % ±2.11% ±2.89% ±3.93%
buffers/buffer-read-with-byteLength.js byteLength=1 n=1000000 type='UIntLE' buffer='fast' -1.57 % ±2.62% ±3.66% ±5.14%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntBE' buffer='fast' -0.85 % ±2.18% ±3.04% ±4.24%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='IntLE' buffer='fast' -0.81 % ±2.29% ±3.14% ±4.27%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntBE' buffer='fast' 2.13 % ±2.61% ±3.58% ±4.88%
buffers/buffer-read-with-byteLength.js byteLength=2 n=1000000 type='UIntLE' buffer='fast' 0.29 % ±2.03% ±2.88% ±4.13%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntBE' buffer='fast' 0.09 % ±1.99% ±2.73% ±3.73%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='IntLE' buffer='fast' -0.58 % ±2.09% ±2.87% ±3.93%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntBE' buffer='fast' -1.67 % ±2.45% ±3.38% ±4.67%
buffers/buffer-read-with-byteLength.js byteLength=3 n=1000000 type='UIntLE' buffer='fast' 0.40 % ±1.74% ±2.40% ±3.32%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntBE' buffer='fast' 1.12 % ±2.06% ±2.84% ±3.91%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='IntLE' buffer='fast' -0.29 % ±3.09% ±4.24% ±5.81%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntBE' buffer='fast' -0.43 % ±2.29% ±3.16% ±4.34%
buffers/buffer-read-with-byteLength.js byteLength=4 n=1000000 type='UIntLE' buffer='fast' -0.49 % ±2.31% ±3.16% ±4.32%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntBE' buffer='fast' -0.05 % ±2.11% ±2.89% ±3.94%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='IntLE' buffer='fast' -1.02 % ±2.10% ±2.91% ±4.03%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntBE' buffer='fast' 0.32 % ±2.11% ±2.91% ±4.01%
buffers/buffer-read-with-byteLength.js byteLength=5 n=1000000 type='UIntLE' buffer='fast' -0.63 % ±2.41% ±3.33% ±4.60%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntBE' buffer='fast' -0.80 % ±3.18% ±4.41% ±6.13%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='IntLE' buffer='fast' 0.05 % ±2.59% ±3.56% ±4.86%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntBE' buffer='fast' -0.48 % ±3.15% ±4.32% ±5.88%
buffers/buffer-read-with-byteLength.js byteLength=6 n=1000000 type='UIntLE' buffer='fast' 2.37 % ±6.35% ±8.91% ±12.63%
buffers/buffer-read.js n=1000000 type='BigInt64BE' buffer='fast' 0.28 % ±1.87% ±2.58% ±3.56%
buffers/buffer-read.js n=1000000 type='BigInt64LE' buffer='fast' 0.65 % ±1.32% ±1.83% ±2.53%
buffers/buffer-read.js n=1000000 type='BigUInt64BE' buffer='fast' 2.47 % ±3.82% ±5.34% ±7.50%
buffers/buffer-read.js n=1000000 type='BigUInt64LE' buffer='fast' -2.18 % ±3.67% ±5.03% ±6.86%
buffers/buffer-read.js n=1000000 type='Int16BE' buffer='fast' 3.35 % ±5.88% ±8.15% ±11.30%
buffers/buffer-read.js n=1000000 type='Int16LE' buffer='fast' ** 6.24 % ±4.01% ±5.49% ±7.48%
buffers/buffer-read.js n=1000000 type='Int32BE' buffer='fast' -0.65 % ±3.44% ±4.71% ±6.43%
buffers/buffer-read.js n=1000000 type='Int32LE' buffer='fast' 2.01 % ±6.71% ±9.35% ±13.06%
buffers/buffer-read.js n=1000000 type='Int8' buffer='fast' * 3.86 % ±3.64% ±4.99% ±6.81%
buffers/buffer-read.js n=1000000 type='UInt16BE' buffer='fast' 3.15 % ±3.97% ±5.47% ±7.52%
buffers/buffer-read.js n=1000000 type='UInt16LE' buffer='fast' 3.60 % ±4.44% ±6.13% ±8.45%
buffers/buffer-read.js n=1000000 type='UInt32BE' buffer='fast' -1.14 % ±3.67% ±5.05% ±6.94%
buffers/buffer-read.js n=1000000 type='UInt32LE' buffer='fast' -1.69 % ±4.54% ±6.31% ±8.80%
buffers/buffer-read.js n=1000000 type='UInt8' buffer='fast' 2.56 % ±3.80% ±5.28% ±7.34%
buffers/buffer-slice.js n=1000000 type='fast' 0.61 % ±0.89% ±1.22% ±1.68%
buffers/buffer-slice.js n=1000000 type='slow' * 1.71 % ±1.45% ±2.03% ±2.84%
buffers/buffer-slice.js n=1000000 type='subarray' * 1.30 % ±1.05% ±1.47% ±2.07%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='false' 0.73 % ±6.75% ±9.27% ±12.67%
buffers/buffer-swap.js n=1000000 len=1024 method='swap16' aligned='true' 1.38 % ±6.12% ±8.38% ±11.44%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='false' 3.50 % ±4.83% ±6.90% ±10.07%
buffers/buffer-swap.js n=1000000 len=1024 method='swap32' aligned='true' -0.83 % ±4.95% ±7.09% ±10.38%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='false' 6.45 % ±7.15% ±10.26% ±15.07%
buffers/buffer-swap.js n=1000000 len=1024 method='swap64' aligned='true' ** 1.29 % ±0.78% ±1.08% ±1.47%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='false' -0.18 % ±7.24% ±9.92% ±13.51%
buffers/buffer-swap.js n=1000000 len=2056 method='swap16' aligned='true' 0.11 % ±8.68% ±11.89% ±16.19%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='false' -2.79 % ±9.28% ±12.76% ±17.48%
buffers/buffer-swap.js n=1000000 len=2056 method='swap32' aligned='true' -1.64 % ±10.86% ±14.90% ±20.34%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='false' -4.92 % ±6.53% ±9.33% ±13.58%
buffers/buffer-swap.js n=1000000 len=2056 method='swap64' aligned='true' -3.30 % ±5.77% ±8.27% ±12.14%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='false' 0.15 % ±1.03% ±1.42% ±1.96%
buffers/buffer-swap.js n=1000000 len=256 method='swap16' aligned='true' -0.55 % ±1.36% ±1.86% ±2.56%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='false' -0.21 % ±1.16% ±1.64% ±2.35%
buffers/buffer-swap.js n=1000000 len=256 method='swap32' aligned='true' 0.90 % ±1.54% ±2.18% ±3.13%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='false' -0.99 % ±2.04% ±2.87% ±4.06%
buffers/buffer-swap.js n=1000000 len=256 method='swap64' aligned='true' -0.25 % ±1.14% ±1.57% ±2.14%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='false' -0.86 % ±1.37% ±1.94% ±2.80%
buffers/buffer-swap.js n=1000000 len=64 method='swap16' aligned='true' 0.45 % ±0.72% ±0.98% ±1.34%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='false' 0.12 % ±0.82% ±1.13% ±1.56%
buffers/buffer-swap.js n=1000000 len=64 method='swap32' aligned='true' -0.42 % ±0.66% ±0.91% ±1.24%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='false' -0.01 % ±2.16% ±2.97% ±4.08%
buffers/buffer-swap.js n=1000000 len=64 method='swap64' aligned='true' 0.13 % ±0.75% ±1.03% ±1.41%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='false' 0.73 % ±1.69% ±2.33% ±3.21%
buffers/buffer-swap.js n=1000000 len=768 method='swap16' aligned='true' 0.64 % ±1.36% ±1.87% ±2.57%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='false' * 1.29 % ±1.05% ±1.44% ±1.97%
buffers/buffer-swap.js n=1000000 len=768 method='swap32' aligned='true' -2.46 % ±9.26% ±13.28% ±19.48%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='false' 0.97 % ±1.35% ±1.88% ±2.63%
buffers/buffer-swap.js n=1000000 len=768 method='swap64' aligned='true' 2.08 % ±4.15% ±5.87% ±8.44%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='false' * -4.60 % ±4.59% ±6.29% ±8.56%
buffers/buffer-swap.js n=1000000 len=8192 method='swap16' aligned='true' 2.63 % ±5.59% ±8.02% ±11.79%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='false' -6.74 % ±7.03% ±9.71% ±13.42%
buffers/buffer-swap.js n=1000000 len=8192 method='swap32' aligned='true' -0.02 % ±1.74% ±2.46% ±3.50%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='false' -2.60 % ±5.74% ±7.89% ±10.80%
buffers/buffer-swap.js n=1000000 len=8192 method='swap64' aligned='true' 0.18 % ±0.90% ±1.28% ±1.83%
buffers/buffer-tojson.js len=0 n=10000 8.57 % ±24.29% ±33.27% ±45.33%
buffers/buffer-tojson.js len=256 n=10000 -1.86 % ±3.11% ±4.26% ±5.81%
buffers/buffer-tojson.js len=4096 n=10000 0.38 % ±2.13% ±2.93% ±3.99%
buffers/buffer-tostring.js n=1000000 len=1 args=0 encoding='' -0.29 % ±0.46% ±0.64% ±0.87%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='ascii' *** -2.87 % ±1.02% ±1.42% ±1.99%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='hex' * -2.88 % ±2.10% ±2.93% ±4.11%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='latin1' 1.16 % ±1.86% ±2.61% ±3.70%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='UCS-2' -0.37 % ±6.57% ±9.00% ±12.27%
buffers/buffer-tostring.js n=1000000 len=1 args=1 encoding='utf8' * 0.59 % ±0.51% ±0.70% ±0.96%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='ascii' -0.05 % ±5.73% ±8.23% ±12.09%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='hex' * -2.61 % ±2.13% ±2.92% ±3.99%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='latin1' ** 1.75 % ±1.19% ±1.67% ±2.38%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='UCS-2' -3.64 % ±5.98% ±8.21% ±11.20%
buffers/buffer-tostring.js n=1000000 len=1 args=3 encoding='utf8' 4.42 % ±8.73% ±12.48% ±18.23%
buffers/buffer-tostring.js n=1000000 len=1024 args=0 encoding='' 1.67 % ±2.93% ±4.05% ±5.60%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='ascii' 0.92 % ±8.34% ±11.53% ±15.90%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='hex' -1.29 % ±2.75% ±3.84% ±5.39%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='latin1' 3.45 % ±6.18% ±8.79% ±12.71%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='UCS-2' 0.82 % ±4.30% ±6.16% ±9.04%
buffers/buffer-tostring.js n=1000000 len=1024 args=1 encoding='utf8' * 1.99 % ±1.90% ±2.62% ±3.59%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='ascii' 1.18 % ±3.41% ±4.68% ±6.39%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='hex' -0.44 % ±2.67% ±3.72% ±5.18%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='latin1' 0.57 % ±3.18% ±4.35% ±5.93%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='UCS-2' 1.76 % ±3.95% ±5.45% ±7.51%
buffers/buffer-tostring.js n=1000000 len=1024 args=3 encoding='utf8' 2.58 % ±4.16% ±5.90% ±8.49%
buffers/buffer-tostring.js n=1000000 len=64 args=0 encoding='' *** 4.79 % ±1.27% ±1.78% ±2.52%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='ascii' -2.02 % ±2.29% ±3.13% ±4.27%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='hex' -4.68 % ±7.01% ±9.98% ±14.44%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='latin1' 0.44 % ±1.97% ±2.70% ±3.69%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='UCS-2' * 4.49 % ±3.83% ±5.46% ±7.94%
buffers/buffer-tostring.js n=1000000 len=64 args=1 encoding='utf8' 2.15 % ±2.18% ±2.98% ±4.06%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='ascii' -0.17 % ±4.79% ±6.72% ±9.52%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='hex' -0.37 % ±2.48% ±3.40% ±4.64%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='latin1' -4.26 % ±11.36% ±16.23% ±23.66%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='UCS-2' * 3.24 % ±2.86% ±3.94% ±5.43%
buffers/buffer-tostring.js n=1000000 len=64 args=3 encoding='utf8' ** 2.21 % ±1.57% ±2.15% ±2.93%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='ascii' 0.84 % ±6.77% ±9.27% ±12.63%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='latin1' 7.43 % ±21.04% ±29.80% ±42.83%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='ucs2' 5.38 % ±11.95% ±16.70% ±23.49%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ascii' fromEncoding='utf8' -3.97 % ±8.64% ±11.85% ±16.17%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='ascii' 6.91 % ±10.16% ±14.04% ±19.40%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='latin1' -2.94 % ±6.88% ±9.43% ±12.85%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='ucs2' 5.13 % ±7.49% ±10.29% ±14.07%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='latin1' fromEncoding='utf8' 1.33 % ±8.04% ±11.08% ±15.22%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='ascii' 1.99 % ±7.87% ±10.81% ±14.80%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='latin1' 3.77 % ±9.75% ±13.36% ±18.22%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='ucs2' -6.74 % ±7.49% ±10.37% ±14.35%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='ucs2' fromEncoding='utf8' 2.55 % ±7.32% ±10.06% ±13.79%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='ascii' 0.06 % ±7.26% ±9.97% ±13.61%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='latin1' -0.87 % ±5.22% ±7.22% ±10.00%
buffers/buffer-transcode.js n=100000 length=1 toEncoding='utf8' fromEncoding='utf8' 12.77 % ±13.73% ±19.03% ±26.42%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='ascii' 11.67 % ±24.60% ±34.99% ±50.65%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='latin1' 4.95 % ±5.46% ±7.54% ±10.39%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='ucs2' 3.44 % ±4.60% ±6.31% ±8.61%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ascii' fromEncoding='utf8' 3.59 % ±7.43% ±10.24% ±14.06%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='ascii' 4.80 % ±6.88% ±9.50% ±13.10%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='latin1' 2.57 % ±6.35% ±8.70% ±11.85%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='ucs2' -0.01 % ±8.26% ±11.35% ±15.53%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='latin1' fromEncoding='utf8' -3.06 % ±8.03% ±11.00% ±14.99%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='ascii' 4.85 % ±12.49% ±17.22% ±23.71%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='latin1' 1.15 % ±8.27% ±11.38% ±15.59%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='ucs2' -0.76 % ±6.18% ±8.50% ±11.65%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='ucs2' fromEncoding='utf8' -1.40 % ±11.85% ±16.42% ±22.77%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='ascii' -3.78 % ±8.36% ±11.48% ±15.70%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='latin1' 1.67 % ±8.91% ±12.33% ±17.07%
buffers/buffer-transcode.js n=100000 length=10 toEncoding='utf8' fromEncoding='utf8' 3.33 % ±15.98% ±22.10% ±30.56%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='ascii' 7.20 % ±13.47% ±19.26% ±28.11%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='latin1' -0.39 % ±4.33% ±6.01% ±8.36%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='ucs2' -1.70 % ±4.86% ±6.70% ±9.22%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ascii' fromEncoding='utf8' -4.31 % ±4.57% ±6.34% ±8.84%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='ascii' 2.27 % ±4.57% ±6.28% ±8.58%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='latin1' 3.92 % ±7.06% ±9.94% ±14.13%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='ucs2' -0.88 % ±2.20% ±3.02% ±4.13%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='latin1' fromEncoding='utf8' -0.46 % ±1.85% ±2.54% ±3.46%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='ascii' 0.63 % ±5.39% ±7.50% ±10.48%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='latin1' 1.10 % ±3.47% ±4.75% ±6.47%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='ucs2' 0.82 % ±2.89% ±4.10% ±5.92%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='ucs2' fromEncoding='utf8' -0.19 % ±3.85% ±5.28% ±7.19%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='ascii' 0.51 % ±3.87% ±5.32% ±7.31%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='latin1' 0.48 % ±4.04% ±5.64% ±7.90%
buffers/buffer-transcode.js n=100000 length=1000 toEncoding='utf8' fromEncoding='utf8' -6.01 % ±14.36% ±20.31% ±29.13%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='ascii' 2.56 % ±4.92% ±6.94% ±9.92%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='latin1' -0.81 % ±1.42% ±1.96% ±2.70%
buffers/buffer-write-string-short.js n=1000000 len=1 encoding='utf8' -0.69 % ±2.14% ±2.94% ±4.03%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='ascii' -3.41 % ±6.29% ±8.90% ±12.77%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='latin1' -0.31 % ±3.22% ±4.41% ±6.01%
buffers/buffer-write-string-short.js n=1000000 len=16 encoding='utf8' -0.68 % ±2.76% ±3.79% ±5.16%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='ascii' 0.51 % ±2.65% ±3.63% ±4.96%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='latin1' -1.33 % ±2.14% ±2.94% ±4.02%
buffers/buffer-write-string-short.js n=1000000 len=32 encoding='utf8' -4.41 % ±5.67% ±7.97% ±11.30%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='ascii' 0.51 % ±2.74% ±3.78% ±5.19%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='latin1' -5.80 % ±9.26% ±13.16% ±19.02%
buffers/buffer-write-string-short.js n=1000000 len=8 encoding='utf8' -1.51 % ±4.29% ±5.90% ±8.11%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='' -1.03 % ±1.79% ±2.45% ±3.34%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='ascii' 0.46 % ±1.40% ±1.95% ±2.73%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='hex' 0.48 % ±2.77% ±3.84% ±5.31%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='latin1' 0.00 % ±12.08% ±16.56% ±22.59%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf16le' ** -4.86 % ±3.33% ±4.70% ±6.72%
buffers/buffer-write-string.js n=1000000 len=2048 args='' encoding='utf8' -1.49 % ±3.73% ±5.18% ±7.20%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='' * -1.17 % ±1.11% ±1.53% ±2.08%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='ascii' -0.05 % ±2.44% ±3.35% ±4.58%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='hex' -1.74 % ±2.10% ±2.91% ±4.02%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='latin1' 1.22 % ±3.35% ±4.75% ±6.82%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf16le' -0.45 % ±7.45% ±10.63% ±15.46%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset' encoding='utf8' * -2.07 % ±1.80% ±2.49% ±3.45%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='' -1.69 % ±1.90% ±2.65% ±3.74%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='ascii' -2.70 % ±7.75% ±11.11% ±16.30%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='hex' * -2.10 % ±1.59% ±2.20% ±3.03%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='latin1' 0.84 % ±2.86% ±3.96% ±5.47%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf16le' * -3.12 % ±2.79% ±3.88% ±5.42%
buffers/buffer-write-string.js n=1000000 len=2048 args='offset+length' encoding='utf8' -1.02 % ±1.82% ±2.49% ±3.39%
buffers/buffer-write.js n=1000000 type='BigInt64BE' buffer='fast' 1.60 % ±5.58% ±7.84% ±11.13%
buffers/buffer-write.js n=1000000 type='BigInt64LE' buffer='fast' -0.04 % ±4.20% ±5.79% ±7.96%
buffers/buffer-write.js n=1000000 type='BigUInt64BE' buffer='fast' -3.06 % ±4.55% ±6.31% ±8.76%
buffers/buffer-write.js n=1000000 type='BigUInt64LE' buffer='fast' -0.58 % ±4.93% ±6.82% ±9.43%
buffers/buffer-write.js n=1000000 type='DoubleBE' buffer='fast' -0.19 % ±2.84% ±3.89% ±5.31%
buffers/buffer-write.js n=1000000 type='DoubleLE' buffer='fast' 8.25 % ±16.59% ±23.77% ±34.84%
buffers/buffer-write.js n=1000000 type='FloatBE' buffer='fast' 0.12 % ±2.95% ±4.05% ±5.56%
buffers/buffer-write.js n=1000000 type='FloatLE' buffer='fast' -0.83 % ±2.88% ±3.95% ±5.39%
buffers/buffer-write.js n=1000000 type='Int16BE' buffer='fast' -1.29 % ±2.55% ±3.62% ±5.20%
buffers/buffer-write.js n=1000000 type='Int16LE' buffer='fast' 1.93 % ±2.79% ±3.91% ±5.54%
buffers/buffer-write.js n=1000000 type='Int32BE' buffer='fast' -0.78 % ±3.70% ±5.09% ±6.98%
buffers/buffer-write.js n=1000000 type='Int32LE' buffer='fast' -0.14 % ±4.69% ±6.43% ±8.77%
buffers/buffer-write.js n=1000000 type='Int8' buffer='fast' 0.58 % ±3.33% ±4.66% ±6.57%
buffers/buffer-write.js n=1000000 type='IntBE' buffer='fast' * 2.36 % ±1.96% ±2.69% ±3.67%
buffers/buffer-write.js n=1000000 type='IntLE' buffer='fast' 0.22 % ±1.88% ±2.58% ±3.53%
buffers/buffer-write.js n=1000000 type='UInt16BE' buffer='fast' 3.07 % ±3.96% ±5.57% ±7.91%
buffers/buffer-write.js n=1000000 type='UInt16LE' buffer='fast' 1.34 % ±3.94% ±5.40% ±7.37%
buffers/buffer-write.js n=1000000 type='UInt32BE' buffer='fast' -1.69 % ±2.62% ±3.64% ±5.08%
buffers/buffer-write.js n=1000000 type='UInt32LE' buffer='fast' -1.68 % ±3.55% ±4.91% ±6.79%
buffers/buffer-write.js n=1000000 type='UInt8' buffer='fast' 8.56 % ±13.99% ±20.00% ±29.17%
buffers/buffer-write.js n=1000000 type='UIntBE' buffer='fast' -0.29 % ±3.57% ±4.94% ±6.83%
buffers/buffer-write.js n=1000000 type='UIntLE' buffer='fast' * -2.54 % ±2.50% ±3.45% ±4.74%
buffers/buffer-zero.js type='buffer' n=1000000 0.34 % ±2.89% ±3.97% ±5.43%
buffers/buffer-zero.js type='string' n=1000000 -1.99 % ±3.64% ±5.14% ±7.36%
buffers/dataview-set.js n=1000000 type='Float32BE' -5.55 % ±9.42% ±13.50% ±19.80%
buffers/dataview-set.js n=1000000 type='Float32LE' -0.89 % ±6.55% ±9.03% ±12.43%
buffers/dataview-set.js n=1000000 type='Float64BE' 6.10 % ±17.80% ±25.46% ±37.19%
buffers/dataview-set.js n=1000000 type='Float64LE' -5.14 % ±11.87% ±17.00% ±24.89%
buffers/dataview-set.js n=1000000 type='Int16BE' -0.53 % ±2.70% ±3.71% ±5.05%
buffers/dataview-set.js n=1000000 type='Int16LE' -0.04 % ±1.98% ±2.72% ±3.73%
buffers/dataview-set.js n=1000000 type='Int32BE' 3.64 % ±6.25% ±8.80% ±12.54%
buffers/dataview-set.js n=1000000 type='Int32LE' 1.00 % ±2.96% ±4.06% ±5.54%
buffers/dataview-set.js n=1000000 type='Int8' -1.75 % ±2.16% ±2.97% ±4.07%
buffers/dataview-set.js n=1000000 type='Uint16BE' 1.55 % ±2.42% ±3.32% ±4.55%
buffers/dataview-set.js n=1000000 type='Uint16LE' -0.33 % ±2.19% ±3.01% ±4.09%
buffers/dataview-set.js n=1000000 type='Uint32BE' -1.22 % ±1.92% ±2.64% ±3.61%
buffers/dataview-set.js n=1000000 type='Uint32LE' 0.10 % ±2.83% ±3.91% ±5.38%
buffers/dataview-set.js n=1000000 type='Uint8' 2.38 % ±3.74% ±5.22% ±7.32%
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 (***)
|
Removes the reliance on prototype bound methods internally
so that Uint8Arrays can be set as the bound
this
value when callingthe various Buffer methods. Introduces some additional tamper protection
by removing internal reliance on writable properties.
Fixes: #56577