GeezerVison is showing github.com — util: improve performance of normalizeEncoding by kylo5aby · Pull Request #50721 · nodejs/node
Conversation
kylo5aby
commented
Nov 14, 2023
•
edited by H4ad
Loading
Uh oh!
There was an error while loading. Please reload this page.
Improve performance of normalizeEncoding by using primordial.
Benchmark Results:
util/normalize-encoding.js n=100000 input='' *** 6.93 % ±3.29% ±4.38% ±5.70%
util/normalize-encoding.js n=100000 input='base64' *** 5.35 % ±2.57% ±3.42% ±4.46%
util/normalize-encoding.js n=100000 input='BASE64' * -2.33 % ±2.29% ±3.05% ±3.98%
util/normalize-encoding.js n=100000 input='binary' -1.38 % ±2.95% ±3.92% ±5.10%
util/normalize-encoding.js n=100000 input='BINARY' -1.48 % ±1.56% ±2.07% ±2.70%
util/normalize-encoding.js n=100000 input='foo' 2.08 % ±2.23% ±2.97% ±3.87%
util/normalize-encoding.js n=100000 input='group_common' *** 11.06 % ±2.04% ±2.71% ±3.53%
util/normalize-encoding.js n=100000 input='group_misc' *** 16.66 % ±2.19% ±2.91% ±3.80%
util/normalize-encoding.js n=100000 input='group_uncommon' *** 6.37 % ±2.67% ±3.55% ±4.63%
util/normalize-encoding.js n=100000 input='group_upper' *** 20.02 % ±1.97% ±2.62% ±3.42%
util/normalize-encoding.js n=100000 input='hex' *** 5.49 % ±2.85% ±3.79% ±4.94%
util/normalize-encoding.js n=100000 input='HEX' * 3.19 % ±2.66% ±3.54% ±4.61%
util/normalize-encoding.js n=100000 input='latin1' -0.62 % ±2.70% ±3.60% ±4.69%
util/normalize-encoding.js n=100000 input='ucs2' *** 7.78 % ±2.40% ±3.20% ±4.16%
util/normalize-encoding.js n=100000 input='UCS2' ** 2.99 % ±1.99% ±2.66% ±3.48%
util/normalize-encoding.js n=100000 input='undefined' 2.42 % ±4.90% ±6.51% ±8.48%
util/normalize-encoding.js n=100000 input='utf-8' -1.34 % ±4.21% ±5.60% ±7.29%
util/normalize-encoding.js n=100000 input='UTF-8' 0.85 % ±2.50% ±3.32% ±4.33%
util/normalize-encoding.js n=100000 input='utf16le' ** 4.10 % ±3.06% ±4.06% ±5.29%
util/normalize-encoding.js n=100000 input='UTF16LE' -0.75 % ±2.36% ±3.14% ±4.09%
util/normalize-encoding.js n=100000 input='utf8' -1.64 % ±3.63% ±4.83% ±6.29%
util/normalize-encoding.js n=100000 input='Utf8' *** 4.40 % ±1.65% ±2.20% ±2.86%
util/normalize-encoding.js n=100000 input='UTF8' *** 7.20 % ±2.95% ±3.92% ±5.10%
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
bricss and H4ad reacted with rocket emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
H4ad
left a comment
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
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.
They are not performing the same operation, if enc is not a string, it will throw an error.
String.prototype.toLowerCase.call(undefined, [])
So we should stringify when enc is not string and then perform toLowerCase.
What you can do is add a slow path of stringify only when enc is not a string, so maybe we can keep the fast-path with these new improvements.
Also, let's wait for the Benchmark CI results:
https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1471/
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
kylo5aby
commented
Nov 16, 2023
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
They are not performing the same operation, if enc is not a string, it will throw an error.
String.prototype.toLowerCase.call(undefined, [])
So we should stringify when enc is not string and then perform toLowerCase.
What you can do is add a slow path of stringify only when enc is not a string, so maybe we can keep the fast-path with these new improvements.
Also, let's wait for the Benchmark CI results:
https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1471/
Thanks for your advise. But enc can't be undefined or null in the switch(enc.length) ...case... block. so in this case, if enc has a type other than string, it does the same thing as String.prototype.toLowerCase.call(${env}, []) implicitly.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
|
@zhenweijin You are right, my example was wrong.
In this case, I think this change is safe to introduce.
Benchmark Result:
util/format.js type='many-%' n=100000 2.66 % ±8.52% ±11.34% ±14.77%
util/format.js type='no-replace-2' n=100000 2.62 % ±6.03% ±8.03% ±10.47%
util/format.js type='no-replace' n=100000 -0.34 % ±6.93% ±9.22% ±12.00%
util/format.js type='number' n=100000 1.36 % ±4.58% ±6.13% ±8.04%
util/format.js type='object-%s' n=100000 0.14 % ±6.63% ±8.83% ±11.50%
util/format.js type='object-to-string' n=100000 3.12 % ±8.93% ±11.88% ±15.46%
util/format.js type='only-objects' n=100000 4.48 % ±5.84% ±7.77% ±10.11%
util/format.js type='replace-object' n=100000 2.35 % ±10.02% ±13.33% ±17.36%
util/format.js type='string-2' n=100000 -3.77 % ±5.92% ±7.89% ±10.28%
util/format.js type='string' n=100000 0.45 % ±4.28% ±5.70% ±7.42%
util/format.js type='unknown' n=100000 2.88 % ±5.10% ±6.78% ±8.83%
util/inspect-array.js type='denseArray_showHidden' len=100 n=500 -1.61 % ±5.72% ±7.62% ±9.93%
util/inspect-array.js type='denseArray_showHidden' len=100000 n=500 -5.41 % ±7.73% ±10.29% ±13.41%
util/inspect-array.js type='denseArray' len=100 n=500 -1.63 % ±5.25% ±7.00% ±9.12%
util/inspect-array.js type='denseArray' len=100000 n=500 -2.92 % ±5.09% ±6.78% ±8.85%
util/inspect-array.js type='mixedArray' len=100 n=500 0.01 % ±6.01% ±8.00% ±10.41%
util/inspect-array.js type='mixedArray' len=100000 n=500 -3.08 % ±7.29% ±9.70% ±12.62%
util/inspect-array.js type='sparseArray' len=100 n=500 * 8.48 % ±7.28% ±9.73% ±12.72%
util/inspect-array.js type='sparseArray' len=100000 n=500 2.83 % ±7.31% ±9.73% ±12.66%
util/inspect-proxy.js isProxy=0 showProxy=0 n=100000 5.12 % ±5.18% ±6.90% ±8.98%
util/inspect-proxy.js isProxy=0 showProxy=1 n=100000 0.83 % ±5.22% ±6.94% ±9.04%
util/inspect-proxy.js isProxy=1 showProxy=0 n=100000 1.30 % ±5.42% ±7.21% ±9.39%
util/inspect-proxy.js isProxy=1 showProxy=1 n=100000 0.76 % ±4.67% ±6.22% ±8.09%
util/inspect.js option='colors' method='Array' n=20000 -0.17 % ±2.33% ±3.11% ±4.04%
util/inspect.js option='colors' method='Date' n=20000 6.13 % ±9.84% ±13.10% ±17.08%
util/inspect.js option='colors' method='Error' n=20000 2.99 % ±9.01% ±11.99% ±15.61%
util/inspect.js option='colors' method='Number' n=20000 -0.74 % ±5.61% ±7.47% ±9.72%
util/inspect.js option='colors' method='Object_deep_ln' n=20000 -1.91 % ±5.98% ±7.95% ±10.35%
util/inspect.js option='colors' method='Object_empty' n=20000 -2.51 % ±4.81% ±6.40% ±8.34%
util/inspect.js option='colors' method='Object' n=20000 * -7.98 % ±7.54% ±10.05% ±13.11%
util/inspect.js option='colors' method='Set' n=20000 2.28 % ±8.60% ±11.45% ±14.91%
util/inspect.js option='colors' method='String_boxed' n=20000 3.48 % ±8.82% ±11.74% ±15.28%
util/inspect.js option='colors' method='String_complex' n=20000 0.46 % ±6.12% ±8.14% ±10.60%
util/inspect.js option='colors' method='String' n=20000 4.75 % ±5.53% ±7.36% ±9.58%
util/inspect.js option='colors' method='TypedArray_extra' n=20000 0.52 % ±2.48% ±3.30% ±4.29%
util/inspect.js option='colors' method='TypedArray' n=20000 0.48 % ±3.17% ±4.21% ±5.49%
util/inspect.js option='none' method='Array' n=20000 1.62 % ±4.13% ±5.50% ±7.16%
util/inspect.js option='none' method='Date' n=20000 0.48 % ±9.33% ±12.42% ±16.16%
util/inspect.js option='none' method='Error' n=20000 3.01 % ±7.22% ±9.62% ±12.54%
util/inspect.js option='none' method='Number' n=20000 -0.01 % ±4.12% ±5.48% ±7.13%
util/inspect.js option='none' method='Object_deep_ln' n=20000 ** -11.26 % ±8.05% ±10.72% ±13.95%
util/inspect.js option='none' method='Object_empty' n=20000 2.54 % ±5.41% ±7.21% ±9.38%
util/inspect.js option='none' method='Object' n=20000 -4.24 % ±8.93% ±11.88% ±15.46%
util/inspect.js option='none' method='Set' n=20000 3.41 % ±7.22% ±9.61% ±12.51%
util/inspect.js option='none' method='String_boxed' n=20000 4.44 % ±8.90% ±11.85% ±15.42%
util/inspect.js option='none' method='String_complex' n=20000 -1.28 % ±5.51% ±7.34% ±9.55%
util/inspect.js option='none' method='String' n=20000 2.16 % ±5.70% ±7.59% ±9.88%
util/inspect.js option='none' method='TypedArray_extra' n=20000 -0.40 % ±5.19% ±6.90% ±8.98%
util/inspect.js option='none' method='TypedArray' n=20000 1.83 % ±7.47% ±9.95% ±12.95%
util/inspect.js option='showHidden' method='Array' n=20000 1.39 % ±4.77% ±6.35% ±8.27%
util/inspect.js option='showHidden' method='Date' n=20000 5.79 % ±9.28% ±12.36% ±16.09%
util/inspect.js option='showHidden' method='Error' n=20000 1.95 % ±8.86% ±11.78% ±15.34%
util/inspect.js option='showHidden' method='Number' n=20000 0.21 % ±3.89% ±5.18% ±6.75%
util/inspect.js option='showHidden' method='Object_deep_ln' n=20000 -3.20 % ±8.74% ±11.63% ±15.14%
util/inspect.js option='showHidden' method='Object_empty' n=20000 -0.04 % ±5.71% ±7.60% ±9.90%
util/inspect.js option='showHidden' method='Object' n=20000 -3.17 % ±7.69% ±10.24% ±13.33%
util/inspect.js option='showHidden' method='Set' n=20000 5.04 % ±7.52% ±10.02% ±13.07%
util/inspect.js option='showHidden' method='String_boxed' n=20000 7.93 % ±9.59% ±12.76% ±16.62%
util/inspect.js option='showHidden' method='String_complex' n=20000 -3.04 % ±5.36% ±7.14% ±9.29%
util/inspect.js option='showHidden' method='String' n=20000 1.95 % ±5.48% ±7.29% ±9.48%
util/inspect.js option='showHidden' method='TypedArray_extra' n=20000 * 6.96 % ±6.50% ±8.65% ±11.25%
util/inspect.js option='showHidden' method='TypedArray' n=20000 2.31 % ±6.77% ±9.01% ±11.73%
util/normalize-encoding.js n=100000 input='' *** 6.93 % ±3.29% ±4.38% ±5.70%
util/normalize-encoding.js n=100000 input='base64' *** 5.35 % ±2.57% ±3.42% ±4.46%
util/normalize-encoding.js n=100000 input='BASE64' * -2.33 % ±2.29% ±3.05% ±3.98%
util/normalize-encoding.js n=100000 input='binary' -1.38 % ±2.95% ±3.92% ±5.10%
util/normalize-encoding.js n=100000 input='BINARY' -1.48 % ±1.56% ±2.07% ±2.70%
util/normalize-encoding.js n=100000 input='foo' 2.08 % ±2.23% ±2.97% ±3.87%
util/normalize-encoding.js n=100000 input='group_common' *** 11.06 % ±2.04% ±2.71% ±3.53%
util/normalize-encoding.js n=100000 input='group_misc' *** 16.66 % ±2.19% ±2.91% ±3.80%
util/normalize-encoding.js n=100000 input='group_uncommon' *** 6.37 % ±2.67% ±3.55% ±4.63%
util/normalize-encoding.js n=100000 input='group_upper' *** 20.02 % ±1.97% ±2.62% ±3.42%
util/normalize-encoding.js n=100000 input='hex' *** 5.49 % ±2.85% ±3.79% ±4.94%
util/normalize-encoding.js n=100000 input='HEX' * 3.19 % ±2.66% ±3.54% ±4.61%
util/normalize-encoding.js n=100000 input='latin1' -0.62 % ±2.70% ±3.60% ±4.69%
util/normalize-encoding.js n=100000 input='ucs2' *** 7.78 % ±2.40% ±3.20% ±4.16%
util/normalize-encoding.js n=100000 input='UCS2' ** 2.99 % ±1.99% ±2.66% ±3.48%
util/normalize-encoding.js n=100000 input='undefined' 2.42 % ±4.90% ±6.51% ±8.48%
util/normalize-encoding.js n=100000 input='utf-8' -1.34 % ±4.21% ±5.60% ±7.29%
util/normalize-encoding.js n=100000 input='UTF-8' 0.85 % ±2.50% ±3.32% ±4.33%
util/normalize-encoding.js n=100000 input='utf16le' ** 4.10 % ±3.06% ±4.06% ±5.29%
util/normalize-encoding.js n=100000 input='UTF16LE' -0.75 % ±2.36% ±3.14% ±4.09%
util/normalize-encoding.js n=100000 input='utf8' -1.64 % ±3.63% ±4.83% ±6.29%
util/normalize-encoding.js n=100000 input='Utf8' *** 4.40 % ±1.65% ±2.20% ±2.86%
util/normalize-encoding.js n=100000 input='UTF8' *** 7.20 % ±2.95% ±3.92% ±5.10%
util/priority-queue.js n=100000 -0.09 % ±0.85% ±1.13% ±1.47%
util/splice-one.js size=10 pos='end' n=100000 -1.94 % ±3.80% ±5.05% ±6.58%
util/splice-one.js size=10 pos='middle' n=100000 -0.92 % ±2.80% ±3.73% ±4.86%
util/splice-one.js size=10 pos='start' n=100000 1.14 % ±2.12% ±2.83% ±3.68%
util/splice-one.js size=100 pos='end' n=100000 -3.11 % ±3.96% ±5.28% ±6.87%
util/splice-one.js size=100 pos='middle' n=100000 1.22 % ±2.38% ±3.19% ±4.18%
util/splice-one.js size=100 pos='start' n=100000 0.15 % ±1.00% ±1.33% ±1.74%
util/splice-one.js size=500 pos='end' n=100000 ** -6.60 % ±4.04% ±5.39% ±7.02%
util/splice-one.js size=500 pos='middle' n=100000 -1.29 % ±5.28% ±7.03% ±9.16%
util/splice-one.js size=500 pos='start' n=100000 1.51 % ±1.88% ±2.53% ±3.36%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='iso-8859-3' 2.88 % ±4.20% ±5.59% ±7.27%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='latin1' 2.59 % ±4.88% ±6.50% ±8.48%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='utf-8' 4.11 % ±5.52% ±7.35% ±9.58%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='iso-8859-3' -1.43 % ±4.67% ±6.21% ±8.09%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='latin1' 0.39 % ±5.40% ±7.18% ±9.34%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='utf-8' -3.35 % ±6.27% ±8.35% ±10.87%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='iso-8859-3' 3.01 % ±4.22% ±5.62% ±7.31%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='latin1' 0.91 % ±4.33% ±5.77% ±7.52%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='utf-8' -0.16 % ±6.88% ±9.16% ±11.93%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='iso-8859-3' -0.51 % ±5.09% ±6.77% ±8.81%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='latin1' -2.31 % ±5.84% ±7.78% ±10.12%
util/text-decoder.js type='ArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='utf-8' -3.07 % ±7.11% ±9.46% ±12.31%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='iso-8859-3' 4.56 % ±12.31% ±16.38% ±21.33%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='latin1' -1.85 % ±12.19% ±16.21% ±21.10%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='utf-8' 6.38 % ±11.99% ±15.96% ±20.78%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='iso-8859-3' 4.95 % ±11.90% ±15.84% ±20.62%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='latin1' 3.51 % ±11.58% ±15.41% ±20.06%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='utf-8' 7.62 % ±9.48% ±12.69% ±16.67%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='iso-8859-3' 1.72 % ±10.24% ±13.63% ±17.74%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='latin1' 0.68 % ±11.02% ±14.66% ±19.09%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='utf-8' 4.39 % ±11.89% ±15.82% ±20.60%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='iso-8859-3' 7.65 % ±12.17% ±16.21% ±21.11%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='latin1' -3.24 % ±8.65% ±11.53% ±15.06%
util/text-decoder.js type='ArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='utf-8' 4.37 % ±9.34% ±12.45% ±16.25%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='iso-8859-3' -0.06 % ±2.42% ±3.22% ±4.20%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='latin1' -0.44 % ±1.46% ±1.94% ±2.52%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='utf-8' 0.60 % ±2.31% ±3.08% ±4.01%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='iso-8859-3' 1.05 % ±2.48% ±3.30% ±4.31%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='latin1' -0.92 % ±2.33% ±3.11% ±4.07%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='utf-8' 0.06 % ±2.55% ±3.40% ±4.42%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='iso-8859-3' * 2.32 % ±2.04% ±2.73% ±3.56%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='latin1' 1.57 % ±3.10% ±4.13% ±5.38%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='utf-8' -2.39 % ±2.58% ±3.43% ±4.46%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='iso-8859-3' 0.22 % ±1.36% ±1.82% ±2.37%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='latin1' 0.17 % ±1.91% ±2.55% ±3.32%
util/text-decoder.js type='ArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='utf-8' 0.48 % ±2.68% ±3.56% ±4.64%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='iso-8859-3' 1.31 % ±7.63% ±10.15% ±13.21%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='latin1' -1.47 % ±4.79% ±6.38% ±8.31%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='utf-8' 2.48 % ±4.62% ±6.15% ±8.00%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='iso-8859-3' -2.91 % ±8.59% ±11.44% ±14.91%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='latin1' -3.63 % ±4.39% ±5.85% ±7.62%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='utf-8' -1.35 % ±4.34% ±5.78% ±7.54%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='iso-8859-3' 5.35 % ±12.97% ±17.26% ±22.48%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='latin1' 0.85 % ±5.05% ±6.72% ±8.75%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='utf-8' -4.19 % ±11.00% ±14.64% ±19.06%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='iso-8859-3' 1.67 % ±12.56% ±16.72% ±21.76%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='latin1' -1.42 % ±4.87% ±6.48% ±8.44%
util/text-decoder.js type='Buffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='utf-8' 1.86 % ±11.22% ±14.93% ±19.43%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='iso-8859-3' -0.21 % ±12.83% ±17.06% ±22.21%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='latin1' 1.16 % ±11.10% ±14.77% ±19.24%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='utf-8' -1.30 % ±11.49% ±15.29% ±19.91%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='iso-8859-3' ** -14.95 % ±9.46% ±12.73% ±16.86%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='latin1' 8.59 % ±11.11% ±14.79% ±19.28%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='utf-8' -2.07 % ±6.12% ±8.15% ±10.65%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='iso-8859-3' 8.23 % ±12.32% ±16.40% ±21.38%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='latin1' 3.64 % ±12.49% ±16.62% ±21.65%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='utf-8' -1.71 % ±8.37% ±11.14% ±14.50%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='iso-8859-3' -4.67 % ±13.44% ±17.93% ±23.42%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='latin1' -1.72 % ±12.78% ±17.01% ±22.14%
util/text-decoder.js type='Buffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='utf-8' -6.56 % ±9.01% ±11.99% ±15.62%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='iso-8859-3' 0.02 % ±1.60% ±2.13% ±2.77%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='latin1' 0.47 % ±2.16% ±2.88% ±3.76%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='utf-8' 1.16 % ±2.47% ±3.29% ±4.29%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='iso-8859-3' 0.13 % ±1.63% ±2.18% ±2.84%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='latin1' -2.10 % ±3.83% ±5.15% ±6.82%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='utf-8' -0.99 % ±2.20% ±2.92% ±3.80%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='iso-8859-3' 0.78 % ±2.76% ±3.71% ±4.88%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='latin1' 1.27 % ±1.32% ±1.76% ±2.29%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='utf-8' -1.02 % ±2.53% ±3.37% ±4.38%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='iso-8859-3' 0.60 % ±1.72% ±2.30% ±3.01%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='latin1' -1.05 % ±1.82% ±2.44% ±3.19%
util/text-decoder.js type='Buffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='utf-8' 0.27 % ±2.81% ±3.74% ±4.86%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='iso-8859-3' 2.97 % ±5.27% ±7.01% ±9.14%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='latin1' -2.84 % ±4.23% ±5.62% ±7.32%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=0 encoding='utf-8' -3.12 % ±6.49% ±8.63% ±11.24%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='iso-8859-3' 3.51 % ±5.11% ±6.81% ±8.86%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='latin1' -0.16 % ±4.61% ±6.14% ±8.00%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=0 ignoreBOM=1 encoding='utf-8' 4.46 % ±6.22% ±8.28% ±10.80%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='iso-8859-3' 2.83 % ±5.50% ±7.32% ±9.52%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='latin1' 1.54 % ±5.22% ±6.96% ±9.07%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=0 encoding='utf-8' 0.65 % ±7.04% ±9.36% ±12.19%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='iso-8859-3' 0.06 % ±5.21% ±6.93% ±9.02%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='latin1' 1.54 % ±5.27% ±7.01% ±9.12%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=16384 fatal=1 ignoreBOM=1 encoding='utf-8' 4.41 % ±6.21% ±8.26% ±10.75%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='iso-8859-3' 8.12 % ±11.91% ±15.86% ±20.68%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='latin1' 6.66 % ±10.31% ±13.74% ±17.91%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=0 encoding='utf-8' -1.00 % ±7.70% ±10.24% ±13.34%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='iso-8859-3' 4.71 % ±11.09% ±14.77% ±19.24%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='latin1' 0.59 % ±11.95% ±15.90% ±20.69%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=0 ignoreBOM=1 encoding='utf-8' 6.49 % ±11.81% ±15.73% ±20.50%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='iso-8859-3' 10.24 % ±13.23% ±17.61% ±22.93%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='latin1' 4.25 % ±12.54% ±16.69% ±21.75%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=0 encoding='utf-8' -7.38 % ±10.20% ±13.59% ±17.73%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='iso-8859-3' 2.06 % ±11.34% ±15.09% ±19.64%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='latin1' 2.34 % ±11.11% ±14.78% ±19.25%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=256 fatal=1 ignoreBOM=1 encoding='utf-8' 2.33 % ±11.27% ±15.00% ±19.52%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='iso-8859-3' -0.51 % ±2.31% ±3.09% ±4.05%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='latin1' -0.48 % ±1.53% ±2.04% ±2.65%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=0 encoding='utf-8' -1.20 % ±2.76% ±3.67% ±4.78%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='iso-8859-3' 0.44 % ±1.28% ±1.71% ±2.22%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='latin1' 0.68 % ±1.74% ±2.32% ±3.02%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=0 ignoreBOM=1 encoding='utf-8' * -2.41 % ±2.29% ±3.04% ±3.96%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='iso-8859-3' -1.31 % ±2.65% ±3.53% ±4.59%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='latin1' 1.06 % ±2.77% ±3.72% ±4.90%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=0 encoding='utf-8' -0.60 % ±2.69% ±3.58% ±4.66%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='iso-8859-3' 0.02 % ±1.56% ±2.08% ±2.71%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='latin1' 0.10 % ±1.43% ±1.90% ±2.47%
util/text-decoder.js type='SharedArrayBuffer' n=100 len=524288 fatal=1 ignoreBOM=1 encoding='utf-8' * -2.97 % ±2.27% ±3.02% ±3.94%
util/text-encoder.js op='encode' type='ascii' n=1000000 len=1024 0.06 % ±1.41% ±1.88% ±2.45%
util/text-encoder.js op='encode' type='ascii' n=1000000 len=256 0.84 % ±1.19% ±1.59% ±2.07%
util/text-encoder.js op='encode' type='ascii' n=1000000 len=32 -0.68 % ±1.60% ±2.13% ±2.77%
util/text-encoder.js op='encode' type='ascii' n=1000000 len=8192 -0.32 % ±0.77% ±1.02% ±1.33%
util/text-encoder.js op='encode' type='one-byte-string' n=1000000 len=1024 0.52 % ±1.13% ±1.50% ±1.96%
util/text-encoder.js op='encode' type='one-byte-string' n=1000000 len=256 -0.73 % ±1.37% ±1.82% ±2.37%
util/text-encoder.js op='encode' type='one-byte-string' n=1000000 len=32 0.01 % ±1.27% ±1.69% ±2.19%
util/text-encoder.js op='encode' type='one-byte-string' n=1000000 len=8192 -0.21 % ±0.32% ±0.43% ±0.56%
util/text-encoder.js op='encode' type='two-byte-string' n=1000000 len=1024 0.08 % ±0.71% ±0.95% ±1.24%
util/text-encoder.js op='encode' type='two-byte-string' n=1000000 len=256 * -1.28 % ±1.02% ±1.36% ±1.77%
util/text-encoder.js op='encode' type='two-byte-string' n=1000000 len=32 -0.54 % ±1.79% ±2.38% ±3.10%
util/text-encoder.js op='encode' type='two-byte-string' n=1000000 len=8192 0.09 % ±0.13% ±0.18% ±0.23%
util/text-encoder.js op='encodeInto' type='ascii' n=1000000 len=1024 -0.70 % ±4.28% ±5.69% ±7.41%
util/text-encoder.js op='encodeInto' type='ascii' n=1000000 len=256 * -6.35 % ±5.69% ±7.57% ±9.85%
util/text-encoder.js op='encodeInto' type='ascii' n=1000000 len=32 -5.96 % ±7.11% ±9.47% ±12.33%
util/text-encoder.js op='encodeInto' type='ascii' n=1000000 len=8192 * 2.62 % ±2.44% ±3.24% ±4.22%
util/text-encoder.js op='encodeInto' type='one-byte-string' n=1000000 len=1024 0.74 % ±1.85% ±2.46% ±3.20%
util/text-encoder.js op='encodeInto' type='one-byte-string' n=1000000 len=256 -2.70 % ±5.49% ±7.30% ±9.50%
util/text-encoder.js op='encodeInto' type='one-byte-string' n=1000000 len=32 0.24 % ±9.44% ±12.55% ±16.34%
util/text-encoder.js op='encodeInto' type='one-byte-string' n=1000000 len=8192 0.05 % ±0.32% ±0.43% ±0.56%
util/text-encoder.js op='encodeInto' type='two-byte-string' n=1000000 len=1024 -0.87 % ±1.20% ±1.59% ±2.08%
util/text-encoder.js op='encodeInto' type='two-byte-string' n=1000000 len=256 * -5.42 % ±5.03% ±6.69% ±8.71%
util/text-encoder.js op='encodeInto' type='two-byte-string' n=1000000 len=32 1.38 % ±8.25% ±10.97% ±14.28%
util/text-encoder.js op='encodeInto' type='two-byte-string' n=1000000 len=8192 0.11 % ±0.19% ±0.25% ±0.32%
util/to-usv-string.js size=10 n=100000 2.51 % ±6.97% ±9.29% ±12.10%
util/to-usv-string.js size=100 n=100000 -4.62 % ±7.49% ±9.96% ±12.97%
util/to-usv-string.js size=500 n=100000 -0.12 % ±1.81% ±2.41% ±3.13%
util/type-check.js n=100000 argument='false-object' version='js' type='ArrayBufferView' -0.54 % ±8.65% ±11.51% ±14.99%
util/type-check.js n=100000 argument='false-object' version='js' type='TypedArray' 6.76 % ±7.07% ±9.42% ±12.28%
util/type-check.js n=100000 argument='false-object' version='js' type='Uint8Array' -0.68 % ±6.43% ±8.56% ±11.15%
util/type-check.js n=100000 argument='false-object' version='native' type='ArrayBufferView' ** -10.46 % ±7.00% ±9.34% ±12.24%
util/type-check.js n=100000 argument='false-object' version='native' type='TypedArray' -1.47 % ±6.60% ±8.78% ±11.44%
util/type-check.js n=100000 argument='false-object' version='native' type='Uint8Array' 2.93 % ±7.91% ±10.52% ±13.69%
util/type-check.js n=100000 argument='false-primitive' version='js' type='ArrayBufferView' -3.53 % ±8.89% ±11.82% ±15.39%
util/type-check.js n=100000 argument='false-primitive' version='js' type='TypedArray' 0.03 % ±6.50% ±8.65% ±11.26%
util/type-check.js n=100000 argument='false-primitive' version='js' type='Uint8Array' -3.35 % ±7.91% ±10.54% ±13.72%
util/type-check.js n=100000 argument='false-primitive' version='native' type='ArrayBufferView' * 10.39 % ±9.93% ±13.21% ±17.19%
util/type-check.js n=100000 argument='false-primitive' version='native' type='TypedArray' -0.56 % ±6.95% ±9.24% ±12.03%
util/type-check.js n=100000 argument='false-primitive' version='native' type='Uint8Array' 0.54 % ±7.87% ±10.47% ±13.63%
util/type-check.js n=100000 argument='true' version='js' type='ArrayBufferView' -7.91 % ±8.17% ±10.88% ±14.20%
util/type-check.js n=100000 argument='true' version='js' type='TypedArray' -0.54 % ±6.36% ±8.46% ±11.01%
util/type-check.js n=100000 argument='true' version='js' type='Uint8Array' -0.64 % ±7.04% ±9.36% ±12.19%
util/type-check.js n=100000 argument='true' version='native' type='ArrayBufferView' 1.95 % ±10.72% ±14.26% ±18.56%
util/type-check.js n=100000 argument='true' version='native' type='TypedArray' -1.26 % ±5.60% ±7.45% ±9.69%
util/type-check.js n=100000 argument='true' version='native' type='Uint8Array' 3.76 % ±7.89% ±10.50% ±13.68%
Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 248 comparisons, you can thus
expect the following amount of false-positive results:
12.40 false positives, when considering a 5% risk acceptance (*, **, ***),
2.48 false positives, when considering a 1% risk acceptance (**, ***),
0.25 false positives, when considering a 0.1% risk acceptance (***)
|
kylo5aby reacted with thumbs up emoji
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
H4ad
added
author ready
PRs with CI started, the required approvals, and no outstanding review comments.
commit-queue
PRs queued for automated landing through the Commit Queue.
and removed
commit-queue
PRs queued for automated landing through the Commit Queue.
labels
Nov 16, 2023
|
@zhenweijin Thanks for the PR, I updated the description to use the Benchmark CI Results.
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Reviewers
H4ad
H4ad approved these changes
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Labels
author ready
PRs with CI started, the required approvals, and no outstanding review comments.
needs-ci
PRs that need a full CI run.
util
Issues and PRs related to the built-in util module.
Milestone
No milestone
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|