| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Review requested:
|
Sorry, something went wrong.
|
What if our own code later assigns to a defaulted-to nullObject? It won't throw and the assignment will be lost. Do we enforce not modifying parameters through lint rules? Should we when nullObject was used? |
Sorry, something went wrong.
I believe assignment to a frozen object throws in strict mode? Are there places where it doesn't? Of course this object is not supposed to be exposed to usedland in any way, nor used in any scenario where there is a slightest chance to mutate it. |
Sorry, something went wrong.
I only tried with likewise constructed null object in REPL. |
Sorry, something went wrong.
It throws for me in REPL as well: Welcome to Node.js v18.1.0.
Type ".help" for more information.
> Object.assign(Object.freeze(Object.create(null)), { blep: 'blop' });
Uncaught TypeError: Cannot add property blep, object is not extensible
at Function.assign (<anonymous>) |
Sorry, something went wrong.
|
Maybe it should be named kEmptyObject instead? |
Sorry, something went wrong.
Sure, renamed. I'm still tracing some tangled places in http*, will rebase to ensure alphabetic order of imports right after that. |
Sorry, something went wrong.
Trying a simpler approach, one that could be more likely used. > o=Object.freeze(Object.create(null))
[Object: null prototype] {}
> o.foo = 'bar'
'bar'
> o.foo
undefined |
Sorry, something went wrong.
Right, it doesn't run in strict mode by default. 😅 $ node --use_strict
Welcome to Node.js v18.1.0.
Type ".help" for more information.
> const o = Object.freeze(Object.create(null));
undefined
> o.blep = 'blop';
Uncaught TypeError: Cannot add property blep, object is not extensibleBoth approaches are covered by test: https://github.com/nodejs/node/blob/5e914f263866f5f22a647e92060c1ed36e4d3300/test/parallel/test-internal-util-objects.js#L76-L87 |
Sorry, something went wrong.
|
Thank you for your diligence. I've learned something ;) |
Sorry, something went wrong.
There was a problem hiding this comment.
I highly suspect this will cause major performance regressions as frozen objects are slower than their traditional counterparts.
This should be deeply investigated for regressions before landing.
Sorry, something went wrong.
AFAIK performance hit from freezing was a thing in the past, but in modern v8 there's no difference anymore. Synthetic testing on 18.1.0 and master shows [fastest] {} < frozenEmptyObject ≈ regularEmptyObject < Object.create(null) < { __proto__: null } [slowest] for me. To be safe, it would make sense to not backport this.
Aside from benchmark CI runs in Jenkins, what kind of investigation would you recommend? |
Sorry, something went wrong.
|
Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/1142/ EDIT: there are a few benchmark impacted by this change, overall it's pretty mild though: confidence improvement accuracy (*) (**) (***) crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha256' writes=500 ** 11.72 % ±8.74% ±11.65% ±15.23% crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='async-parallel' ** 11.29 % ±8.05% ±10.72% ±13.96% crypto/randomBytes.js n=1000 size=64 ** 12.41 % ±7.86% ±10.47% ±13.65% crypto/randomInt.js n=100000 max=10000 min=-100 mode='async-sequential' ** -8.32 % ±5.87% ±7.81% ±10.16% timers/timers-insert-pooled.js n=5000000 ** -5.46 % ±3.51% ±4.67% ±6.08% util/inspect.js option='colors' method='String_complex' n=20000 ** -8.53 % ±6.20% ±8.29% ±10.86% confidence improvement accuracy (*) (**) (***) crypto/aes-gcm-throughput.js len=1024 cipher='aes-128-gcm' n=500 1.02 % ±7.03% ±9.35% ±12.17% crypto/aes-gcm-throughput.js len=1024 cipher='aes-192-gcm' n=500 1.28 % ±7.84% ±10.44% ±13.60% crypto/aes-gcm-throughput.js len=1024 cipher='aes-256-gcm' n=500 -2.01 % ±5.39% ±7.17% ±9.33% crypto/aes-gcm-throughput.js len=1048576 cipher='aes-128-gcm' n=500 0.20 % ±11.02% ±14.66% ±19.08% crypto/aes-gcm-throughput.js len=1048576 cipher='aes-192-gcm' n=500 -1.26 % ±8.33% ±11.09% ±14.45% crypto/aes-gcm-throughput.js len=1048576 cipher='aes-256-gcm' n=500 -1.50 % ±8.41% ±11.20% ±14.58% crypto/aes-gcm-throughput.js len=16384 cipher='aes-128-gcm' n=500 -0.00 % ±7.16% ±9.53% ±12.41% crypto/aes-gcm-throughput.js len=16384 cipher='aes-192-gcm' n=500 1.07 % ±7.50% ±9.97% ±12.98% crypto/aes-gcm-throughput.js len=16384 cipher='aes-256-gcm' n=500 0.13 % ±7.37% ±9.81% ±12.79% crypto/aes-gcm-throughput.js len=262144 cipher='aes-128-gcm' n=500 -1.53 % ±8.61% ±11.46% ±14.92% crypto/aes-gcm-throughput.js len=262144 cipher='aes-192-gcm' n=500 -4.93 % ±7.76% ±10.32% ±13.43% crypto/aes-gcm-throughput.js len=262144 cipher='aes-256-gcm' n=500 1.51 % ±6.36% ±8.47% ±11.03% crypto/aes-gcm-throughput.js len=4096 cipher='aes-128-gcm' n=500 -5.24 % ±8.31% ±11.06% ±14.40% crypto/aes-gcm-throughput.js len=4096 cipher='aes-192-gcm' n=500 -1.26 % ±8.55% ±11.38% ±14.82% crypto/aes-gcm-throughput.js len=4096 cipher='aes-256-gcm' n=500 -2.34 % ±7.69% ±10.24% ±13.33% crypto/aes-gcm-throughput.js len=65536 cipher='aes-128-gcm' n=500 -0.60 % ±7.17% ±9.54% ±12.42% crypto/aes-gcm-throughput.js len=65536 cipher='aes-192-gcm' n=500 2.73 % ±7.45% ±9.92% ±12.91% crypto/aes-gcm-throughput.js len=65536 cipher='aes-256-gcm' n=500 * 7.97 % ±7.26% ±9.66% ±12.57% crypto/cipher-stream.js api='legacy' len=102400 type='asc' cipher='AES192' writes=500 2.21 % ±4.76% ±6.33% ±8.24% crypto/cipher-stream.js api='legacy' len=102400 type='asc' cipher='AES256' writes=500 0.87 % ±4.43% ±5.90% ±7.67% crypto/cipher-stream.js api='legacy' len=102400 type='buf' cipher='AES192' writes=500 -1.61 % ±4.63% ±6.16% ±8.03% crypto/cipher-stream.js api='legacy' len=102400 type='buf' cipher='AES256' writes=500 -0.87 % ±3.71% ±4.93% ±6.43% crypto/cipher-stream.js api='legacy' len=102400 type='utf' cipher='AES192' writes=500 -1.44 % ±3.92% ±5.21% ±6.78% crypto/cipher-stream.js api='legacy' len=102400 type='utf' cipher='AES256' writes=500 -0.09 % ±3.77% ±5.01% ±6.53% crypto/cipher-stream.js api='legacy' len=1024 type='asc' cipher='AES192' writes=500 * -6.32 % ±5.38% ±7.20% ±9.45% crypto/cipher-stream.js api='legacy' len=1024 type='asc' cipher='AES256' writes=500 3.12 % ±9.03% ±12.07% ±15.81% crypto/cipher-stream.js api='legacy' len=1024 type='buf' cipher='AES192' writes=500 2.18 % ±6.16% ±8.19% ±10.66% crypto/cipher-stream.js api='legacy' len=1024 type='buf' cipher='AES256' writes=500 3.94 % ±6.67% ±8.89% ±11.60% crypto/cipher-stream.js api='legacy' len=1024 type='utf' cipher='AES192' writes=500 -1.81 % ±8.39% ±11.16% ±14.52% crypto/cipher-stream.js api='legacy' len=1024 type='utf' cipher='AES256' writes=500 1.06 % ±6.82% ±9.08% ±11.81% crypto/cipher-stream.js api='legacy' len=1048576 type='asc' cipher='AES192' writes=500 0.88 % ±3.98% ±5.29% ±6.89% crypto/cipher-stream.js api='legacy' len=1048576 type='asc' cipher='AES256' writes=500 * 4.67 % ±3.73% ±4.97% ±6.47% crypto/cipher-stream.js api='legacy' len=1048576 type='buf' cipher='AES192' writes=500 3.19 % ±4.74% ±6.30% ±8.21% crypto/cipher-stream.js api='legacy' len=1048576 type='buf' cipher='AES256' writes=500 0.69 % ±4.13% ±5.50% ±7.16% crypto/cipher-stream.js api='legacy' len=1048576 type='utf' cipher='AES192' writes=500 -4.04 % ±4.60% ±6.12% ±7.98% crypto/cipher-stream.js api='legacy' len=1048576 type='utf' cipher='AES256' writes=500 1.30 % ±3.66% ±4.87% ±6.34% crypto/cipher-stream.js api='legacy' len=2 type='asc' cipher='AES192' writes=500 -2.84 % ±5.60% ±7.45% ±9.70% crypto/cipher-stream.js api='legacy' len=2 type='asc' cipher='AES256' writes=500 1.53 % ±4.45% ±5.92% ±7.71% crypto/cipher-stream.js api='legacy' len=2 type='buf' cipher='AES192' writes=500 -0.78 % ±12.71% ±16.91% ±22.02% crypto/cipher-stream.js api='legacy' len=2 type='buf' cipher='AES256' writes=500 -1.14 % ±6.40% ±8.52% ±11.10% crypto/cipher-stream.js api='legacy' len=2 type='utf' cipher='AES192' writes=500 -1.20 % ±4.98% ±6.63% ±8.63% crypto/cipher-stream.js api='legacy' len=2 type='utf' cipher='AES256' writes=500 3.92 % ±4.19% ±5.58% ±7.27% crypto/cipher-stream.js api='stream' len=102400 type='asc' cipher='AES192' writes=500 1.63 % ±3.25% ±4.33% ±5.63% crypto/cipher-stream.js api='stream' len=102400 type='asc' cipher='AES256' writes=500 -1.50 % ±4.19% ±5.59% ±7.31% crypto/cipher-stream.js api='stream' len=102400 type='buf' cipher='AES192' writes=500 * 3.84 % ±3.79% ±5.05% ±6.57% crypto/cipher-stream.js api='stream' len=102400 type='buf' cipher='AES256' writes=500 0.10 % ±3.15% ±4.20% ±5.46% crypto/cipher-stream.js api='stream' len=102400 type='utf' cipher='AES192' writes=500 -1.65 % ±2.75% ±3.66% ±4.77% crypto/cipher-stream.js api='stream' len=102400 type='utf' cipher='AES256' writes=500 1.54 % ±2.67% ±3.56% ±4.64% crypto/cipher-stream.js api='stream' len=1024 type='asc' cipher='AES192' writes=500 -0.71 % ±5.01% ±6.66% ±8.67% crypto/cipher-stream.js api='stream' len=1024 type='asc' cipher='AES256' writes=500 1.16 % ±5.29% ±7.04% ±9.16% crypto/cipher-stream.js api='stream' len=1024 type='buf' cipher='AES192' writes=500 -2.63 % ±5.82% ±7.77% ±10.16% crypto/cipher-stream.js api='stream' len=1024 type='buf' cipher='AES256' writes=500 0.92 % ±5.98% ±7.96% ±10.38% crypto/cipher-stream.js api='stream' len=1024 type='utf' cipher='AES192' writes=500 -1.84 % ±8.54% ±11.41% ±14.96% crypto/cipher-stream.js api='stream' len=1024 type='utf' cipher='AES256' writes=500 -1.22 % ±5.27% ±7.02% ±9.13% crypto/cipher-stream.js api='stream' len=1048576 type='asc' cipher='AES192' writes=500 * -3.44 % ±3.02% ±4.02% ±5.23% crypto/cipher-stream.js api='stream' len=1048576 type='asc' cipher='AES256' writes=500 0.29 % ±3.20% ±4.25% ±5.54% crypto/cipher-stream.js api='stream' len=1048576 type='buf' cipher='AES192' writes=500 -2.80 % ±4.88% ±6.49% ±8.44% crypto/cipher-stream.js api='stream' len=1048576 type='buf' cipher='AES256' writes=500 -2.88 % ±3.74% ±4.98% ±6.48% crypto/cipher-stream.js api='stream' len=1048576 type='utf' cipher='AES192' writes=500 0.85 % ±2.81% ±3.73% ±4.86% crypto/cipher-stream.js api='stream' len=1048576 type='utf' cipher='AES256' writes=500 2.19 % ±3.72% ±4.95% ±6.45% crypto/cipher-stream.js api='stream' len=2 type='asc' cipher='AES192' writes=500 -2.91 % ±5.75% ±7.66% ±9.98% crypto/cipher-stream.js api='stream' len=2 type='asc' cipher='AES256' writes=500 0.74 % ±10.81% ±14.38% ±18.72% crypto/cipher-stream.js api='stream' len=2 type='buf' cipher='AES192' writes=500 -2.22 % ±5.63% ±7.50% ±9.79% crypto/cipher-stream.js api='stream' len=2 type='buf' cipher='AES256' writes=500 9.17 % ±9.23% ±12.40% ±16.38% crypto/cipher-stream.js api='stream' len=2 type='utf' cipher='AES192' writes=500 -1.13 % ±9.92% ±13.25% ±17.35% crypto/cipher-stream.js api='stream' len=2 type='utf' cipher='AES256' writes=500 3.34 % ±5.39% ±7.20% ±9.43% crypto/get-ciphers.js v='crypto' n=1 -4.30 % ±7.55% ±10.07% ±13.13% crypto/get-ciphers.js v='crypto' n=5000 -2.61 % ±6.84% ±9.10% ±11.85% crypto/get-ciphers.js v='tls' n=1 1.16 % ±6.03% ±8.03% ±10.46% crypto/get-ciphers.js v='tls' n=5000 -2.20 % ±4.49% ±5.98% ±7.79% crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='asc' algo='md5' writes=500 -1.99 % ±2.42% ±3.23% ±4.20% crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='asc' algo='sha256' writes=500 -1.06 % ±1.64% ±2.18% ±2.84% crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='buf' algo='md5' writes=500 1.54 % ±3.11% ±4.15% ±5.43% crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='buf' algo='sha256' writes=500 -0.10 % ±1.97% ±2.62% ±3.42% crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='utf' algo='md5' writes=500 * 2.86 % ±2.29% ±3.05% ±3.97% crypto/hash-stream-creation.js api='legacy' len=102400 out='binary' type='utf' algo='sha256' writes=500 0.94 % ±3.43% ±4.57% ±5.96% crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='asc' algo='md5' writes=500 * -5.10 % ±3.83% ±5.12% ±6.71% crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='asc' algo='sha256' writes=500 0.78 % ±2.13% ±2.83% ±3.68% crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='buf' algo='md5' writes=500 2.15 % ±3.20% ±4.26% ±5.57% crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='buf' algo='sha256' writes=500 0.97 % ±2.05% ±2.73% ±3.57% crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='utf' algo='md5' writes=500 -4.31 % ±5.12% ±6.89% ±9.11% crypto/hash-stream-creation.js api='legacy' len=102400 out='buffer' type='utf' algo='sha256' writes=500 -1.17 % ±5.16% ±6.93% ±9.15% crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='asc' algo='md5' writes=500 3.24 % ±6.02% ±8.06% ±10.60% crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='asc' algo='sha256' writes=500 -0.83 % ±1.85% ±2.46% ±3.21% crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='buf' algo='md5' writes=500 -0.14 % ±2.85% ±3.79% ±4.93% crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='buf' algo='sha256' writes=500 -1.25 % ±2.07% ±2.75% ±3.58% crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='utf' algo='md5' writes=500 1.18 % ±2.80% ±3.72% ±4.84% crypto/hash-stream-creation.js api='legacy' len=102400 out='hex' type='utf' algo='sha256' writes=500 -0.71 % ±2.24% ±2.98% ±3.89% crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='asc' algo='md5' writes=500 -7.53 % ±10.15% ±13.57% ±17.80% crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='asc' algo='sha256' writes=500 -4.74 % ±10.53% ±14.07% ±18.45% crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='buf' algo='md5' writes=500 2.08 % ±7.65% ±10.18% ±13.26% crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='buf' algo='sha256' writes=500 2.13 % ±5.65% ±7.52% ±9.78% crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='utf' algo='md5' writes=500 -0.86 % ±6.91% ±9.20% ±11.99% crypto/hash-stream-creation.js api='legacy' len=1024 out='binary' type='utf' algo='sha256' writes=500 4.03 % ±6.00% ±7.99% ±10.43% crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='asc' algo='md5' writes=500 7.81 % ±12.71% ±16.98% ±22.25% crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='asc' algo='sha256' writes=500 -4.36 % ±10.30% ±13.78% ±18.09% crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='buf' algo='md5' writes=500 -0.69 % ±6.51% ±8.66% ±11.27% crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='buf' algo='sha256' writes=500 1.31 % ±6.58% ±8.77% ±11.44% crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='utf' algo='md5' writes=500 -3.86 % ±7.19% ±9.62% ±12.62% crypto/hash-stream-creation.js api='legacy' len=1024 out='buffer' type='utf' algo='sha256' writes=500 -2.54 % ±6.66% ±8.86% ±11.54% crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='asc' algo='md5' writes=500 -3.45 % ±12.48% ±16.61% ±21.61% crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='asc' algo='sha256' writes=500 -0.59 % ±7.28% ±9.69% ±12.61% crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='buf' algo='md5' writes=500 4.10 % ±8.06% ±10.73% ±13.98% crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='buf' algo='sha256' writes=500 -0.40 % ±4.54% ±6.04% ±7.87% crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='utf' algo='md5' writes=500 -1.71 % ±7.83% ±10.42% ±13.56% crypto/hash-stream-creation.js api='legacy' len=1024 out='hex' type='utf' algo='sha256' writes=500 4.00 % ±6.50% ±8.66% ±11.31% crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='asc' algo='md5' writes=500 0.90 % ±1.70% ±2.26% ±2.95% crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='asc' algo='sha256' writes=500 -1.15 % ±1.62% ±2.18% ±2.88% crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='buf' algo='md5' writes=500 -0.51 % ±1.42% ±1.89% ±2.45% crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='buf' algo='sha256' writes=500 -0.86 % ±1.41% ±1.88% ±2.47% crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='utf' algo='md5' writes=500 0.15 % ±1.50% ±2.00% ±2.61% crypto/hash-stream-creation.js api='legacy' len=1048576 out='binary' type='utf' algo='sha256' writes=500 -0.33 % ±1.20% ±1.59% ±2.07% crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='asc' algo='md5' writes=500 1.18 % ±2.63% ±3.51% ±4.59% crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='asc' algo='sha256' writes=500 -1.69 % ±1.94% ±2.60% ±3.41% crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='buf' algo='md5' writes=500 0.84 % ±1.29% ±1.72% ±2.24% crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='buf' algo='sha256' writes=500 * -1.09 % ±1.00% ±1.34% ±1.74% crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='utf' algo='md5' writes=500 1.16 % ±2.26% ±3.01% ±3.92% crypto/hash-stream-creation.js api='legacy' len=1048576 out='buffer' type='utf' algo='sha256' writes=500 * -1.65 % ±1.64% ±2.19% ±2.87% crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='asc' algo='md5' writes=500 0.90 % ±1.58% ±2.10% ±2.74% crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='asc' algo='sha256' writes=500 -0.35 % ±1.72% ±2.29% ±2.99% crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='buf' algo='md5' writes=500 -0.68 % ±1.89% ±2.52% ±3.29% crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='buf' algo='sha256' writes=500 -0.40 % ±1.28% ±1.71% ±2.22% crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='utf' algo='md5' writes=500 0.60 % ±2.19% ±2.91% ±3.80% crypto/hash-stream-creation.js api='legacy' len=1048576 out='hex' type='utf' algo='sha256' writes=500 0.16 % ±1.73% ±2.31% ±3.00% crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='asc' algo='md5' writes=500 -1.92 % ±9.78% ±13.13% ±17.33% crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='asc' algo='sha256' writes=500 4.38 % ±6.61% ±8.82% ±11.51% crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='buf' algo='md5' writes=500 8.99 % ±10.96% ±14.66% ±19.23% crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='buf' algo='sha256' writes=500 * 12.17 % ±10.89% ±14.58% ±19.17% crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='utf' algo='md5' writes=500 5.17 % ±13.09% ±17.42% ±22.69% crypto/hash-stream-creation.js api='legacy' len=2 out='binary' type='utf' algo='sha256' writes=500 4.49 % ±12.23% ±16.42% ±21.67% crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='asc' algo='md5' writes=500 11.78 % ±12.29% ±16.47% ±21.68% crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='asc' algo='sha256' writes=500 -0.08 % ±5.79% ±7.70% ±10.02% crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='buf' algo='md5' writes=500 2.54 % ±6.00% ±7.99% ±10.40% crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='buf' algo='sha256' writes=500 -0.82 % ±7.88% ±10.49% ±13.65% crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='utf' algo='md5' writes=500 10.28 % ±12.17% ±16.31% ±21.45% crypto/hash-stream-creation.js api='legacy' len=2 out='buffer' type='utf' algo='sha256' writes=500 -1.97 % ±6.65% ±8.85% ±11.52% crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='asc' algo='md5' writes=500 -4.62 % ±9.93% ±13.33% ±17.59% crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='asc' algo='sha256' writes=500 -4.38 % ±11.02% ±14.74% ±19.34% crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='buf' algo='md5' writes=500 -0.95 % ±10.47% ±14.00% ±18.39% crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='buf' algo='sha256' writes=500 * 5.33 % ±5.14% ±6.85% ±8.94% crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='utf' algo='md5' writes=500 -6.79 % ±10.30% ±13.79% ±18.13% crypto/hash-stream-creation.js api='legacy' len=2 out='hex' type='utf' algo='sha256' writes=500 4.14 % ±6.79% ±9.04% ±11.77% crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='asc' algo='md5' writes=500 -0.30 % ±4.85% ±6.45% ±8.40% crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='asc' algo='sha256' writes=500 -3.61 % ±3.79% ±5.04% ±6.57% crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='buf' algo='md5' writes=500 -0.95 % ±4.56% ±6.07% ±7.91% crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='buf' algo='sha256' writes=500 -2.61 % ±3.46% ±4.61% ±6.00% crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='utf' algo='md5' writes=500 -0.97 % ±3.77% ±5.02% ±6.54% crypto/hash-stream-creation.js api='stream' len=102400 out='binary' type='utf' algo='sha256' writes=500 1.77 % ±3.60% ±4.79% ±6.24% crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='asc' algo='md5' writes=500 3.20 % ±4.22% ±5.62% ±7.31% crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='asc' algo='sha256' writes=500 0.09 % ±3.51% ±4.68% ±6.09% crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='buf' algo='md5' writes=500 -3.42 % ±4.89% ±6.51% ±8.47% crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='buf' algo='sha256' writes=500 0.65 % ±3.42% ±4.56% ±5.94% crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='utf' algo='md5' writes=500 -2.06 % ±3.86% ±5.14% ±6.69% crypto/hash-stream-creation.js api='stream' len=102400 out='buffer' type='utf' algo='sha256' writes=500 -0.79 % ±3.47% ±4.61% ±6.00% crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='asc' algo='md5' writes=500 -1.11 % ±4.27% ±5.68% ±7.39% crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='asc' algo='sha256' writes=500 * -3.65 % ±3.51% ±4.68% ±6.09% crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='buf' algo='md5' writes=500 -0.97 % ±3.87% ±5.15% ±6.71% crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='buf' algo='sha256' writes=500 -1.35 % ±3.35% ±4.46% ±5.82% crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='utf' algo='md5' writes=500 -1.05 % ±5.49% ±7.31% ±9.52% crypto/hash-stream-creation.js api='stream' len=102400 out='hex' type='utf' algo='sha256' writes=500 0.25 % ±3.02% ±4.02% ±5.24% crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='asc' algo='md5' writes=500 1.12 % ±5.24% ±6.98% ±9.09% crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='asc' algo='sha256' writes=500 1.83 % ±6.38% ±8.49% ±11.07% crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='buf' algo='md5' writes=500 3.95 % ±5.85% ±7.79% ±10.16% crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='buf' algo='sha256' writes=500 2.33 % ±7.49% ±9.96% ±12.97% crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='utf' algo='md5' writes=500 1.41 % ±6.86% ±9.14% ±11.91% crypto/hash-stream-creation.js api='stream' len=1024 out='binary' type='utf' algo='sha256' writes=500 3.89 % ±6.35% ±8.45% ±11.01% crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='asc' algo='md5' writes=500 -0.51 % ±4.78% ±6.36% ±8.28% crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='asc' algo='sha256' writes=500 3.53 % ±6.88% ±9.15% ±11.92% crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='buf' algo='md5' writes=500 -5.14 % ±6.18% ±8.24% ±10.76% crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='buf' algo='sha256' writes=500 0.39 % ±7.39% ±9.84% ±12.81% crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='utf' algo='md5' writes=500 -2.88 % ±6.99% ±9.30% ±12.13% crypto/hash-stream-creation.js api='stream' len=1024 out='buffer' type='utf' algo='sha256' writes=500 0.31 % ±5.87% ±7.82% ±10.18% crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='asc' algo='md5' writes=500 * -7.14 % ±6.68% ±8.90% ±11.61% crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='asc' algo='sha256' writes=500 -2.46 % ±6.49% ±8.64% ±11.24% crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='buf' algo='md5' writes=500 -4.58 % ±5.39% ±7.18% ±9.37% crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='buf' algo='sha256' writes=500 -0.94 % ±5.89% ±7.84% ±10.22% crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='utf' algo='md5' writes=500 1.93 % ±7.40% ±9.85% ±12.82% crypto/hash-stream-creation.js api='stream' len=1024 out='hex' type='utf' algo='sha256' writes=500 0.72 % ±7.01% ±9.33% ±12.14% crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='asc' algo='md5' writes=500 0.01 % ±4.81% ±6.40% ±8.33% crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='asc' algo='sha256' writes=500 1.22 % ±4.94% ±6.57% ±8.55% crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='buf' algo='md5' writes=500 4.41 % ±5.59% ±7.46% ±9.78% crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='buf' algo='sha256' writes=500 4.08 % ±5.73% ±7.67% ±10.06% crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='utf' algo='md5' writes=500 2.29 % ±5.53% ±7.37% ±9.60% crypto/hash-stream-creation.js api='stream' len=1048576 out='binary' type='utf' algo='sha256' writes=500 -0.12 % ±3.12% ±4.15% ±5.40% crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='asc' algo='md5' writes=500 5.23 % ±5.68% ±7.56% ±9.86% crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='asc' algo='sha256' writes=500 0.85 % ±5.30% ±7.05% ±9.18% crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='buf' algo='md5' writes=500 0.36 % ±6.46% ±8.60% ±11.19% crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='buf' algo='sha256' writes=500 2.00 % ±4.04% ±5.38% ±7.01% crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='utf' algo='md5' writes=500 4.75 % ±4.85% ±6.46% ±8.43% crypto/hash-stream-creation.js api='stream' len=1048576 out='buffer' type='utf' algo='sha256' writes=500 2.28 % ±3.70% ±4.93% ±6.41% crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='asc' algo='md5' writes=500 -0.73 % ±4.56% ±6.07% ±7.90% crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='asc' algo='sha256' writes=500 3.43 % ±4.31% ±5.73% ±7.46% crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='buf' algo='md5' writes=500 -1.87 % ±4.38% ±5.83% ±7.59% crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='buf' algo='sha256' writes=500 -2.84 % ±4.49% ±5.99% ±7.82% crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='utf' algo='md5' writes=500 -3.71 % ±4.50% ±5.99% ±7.79% crypto/hash-stream-creation.js api='stream' len=1048576 out='hex' type='utf' algo='sha256' writes=500 1.54 % ±3.29% ±4.38% ±5.70% crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='asc' algo='md5' writes=500 2.15 % ±4.61% ±6.14% ±8.02% crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='asc' algo='sha256' writes=500 -2.06 % ±6.95% ±9.24% ±12.03% crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='buf' algo='md5' writes=500 * 6.77 % ±6.25% ±8.32% ±10.85% crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='buf' algo='sha256' writes=500 0.88 % ±6.76% ±9.01% ±11.77% crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='utf' algo='md5' writes=500 0.53 % ±6.31% ±8.40% ±10.93% crypto/hash-stream-creation.js api='stream' len=2 out='binary' type='utf' algo='sha256' writes=500 -0.24 % ±5.55% ±7.40% ±9.65% crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='asc' algo='md5' writes=500 1.86 % ±9.11% ±12.14% ±15.85% crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='asc' algo='sha256' writes=500 -4.74 % ±6.09% ±8.10% ±10.55% crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='buf' algo='md5' writes=500 -5.11 % ±5.95% ±7.93% ±10.34% crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='buf' algo='sha256' writes=500 2.70 % ±5.11% ±6.80% ±8.85% crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='utf' algo='md5' writes=500 3.36 % ±8.44% ±11.26% ±14.70% crypto/hash-stream-creation.js api='stream' len=2 out='buffer' type='utf' algo='sha256' writes=500 -1.45 % ±6.42% ±8.55% ±11.13% crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='asc' algo='md5' writes=500 -6.08 % ±7.09% ±9.46% ±12.38% crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='asc' algo='sha256' writes=500 -4.22 % ±5.88% ±7.84% ±10.23% crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='buf' algo='md5' writes=500 -0.96 % ±5.73% ±7.63% ±9.94% crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='buf' algo='sha256' writes=500 -0.96 % ±6.57% ±8.74% ±11.38% crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='utf' algo='md5' writes=500 0.89 % ±7.04% ±9.39% ±12.27% crypto/hash-stream-creation.js api='stream' len=2 out='hex' type='utf' algo='sha256' writes=500 -1.39 % ±5.79% ±7.72% ±10.08% crypto/hash-stream-throughput.js api='legacy' len=102400 type='asc' algo='sha1' writes=500 0.38 % ±4.35% ±5.79% ±7.54% crypto/hash-stream-throughput.js api='legacy' len=102400 type='asc' algo='sha256' writes=500 3.40 % ±6.03% ±8.11% ±10.71% crypto/hash-stream-throughput.js api='legacy' len=102400 type='asc' algo='sha512' writes=500 0.63 % ±5.48% ±7.34% ±9.66% crypto/hash-stream-throughput.js api='legacy' len=102400 type='buf' algo='sha1' writes=500 -5.11 % ±7.56% ±10.14% ±13.36% crypto/hash-stream-throughput.js api='legacy' len=102400 type='buf' algo='sha256' writes=500 0.10 % ±2.50% ±3.33% ±4.34% crypto/hash-stream-throughput.js api='legacy' len=102400 type='buf' algo='sha512' writes=500 -1.41 % ±2.54% ±3.38% ±4.41% crypto/hash-stream-throughput.js api='legacy' len=102400 type='utf' algo='sha1' writes=500 0.52 % ±2.43% ±3.24% ±4.22% crypto/hash-stream-throughput.js api='legacy' len=102400 type='utf' algo='sha256' writes=500 -0.41 % ±1.72% ±2.29% ±2.98% crypto/hash-stream-throughput.js api='legacy' len=102400 type='utf' algo='sha512' writes=500 -0.64 % ±2.94% ±3.92% ±5.11% crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha1' writes=500 -2.13 % ±6.39% ±8.50% ±11.07% crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha256' writes=500 ** 11.72 % ±8.74% ±11.65% ±15.23% crypto/hash-stream-throughput.js api='legacy' len=1024 type='asc' algo='sha512' writes=500 10.82 % ±11.44% ±15.36% ±20.30% crypto/hash-stream-throughput.js api='legacy' len=1024 type='buf' algo='sha1' writes=500 -1.03 % ±5.84% ±7.77% ±10.11% crypto/hash-stream-throughput.js api='legacy' len=1024 type='buf' algo='sha256' writes=500 -0.75 % ±5.30% ±7.05% ±9.18% crypto/hash-stream-throughput.js api='legacy' len=1024 type='buf' algo='sha512' writes=500 0.22 % ±6.92% ±9.22% ±12.01% crypto/hash-stream-throughput.js api='legacy' len=1024 type='utf' algo='sha1' writes=500 1.82 % ±5.65% ±7.52% ±9.79% crypto/hash-stream-throughput.js api='legacy' len=1024 type='utf' algo='sha256' writes=500 -5.93 % ±10.15% ±13.63% ±17.97% crypto/hash-stream-throughput.js api='legacy' len=1024 type='utf' algo='sha512' writes=500 -0.76 % ±7.40% ±9.84% ±12.81% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='asc' algo='sha1' writes=500 -0.24 % ±2.61% ±3.48% ±4.52% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='asc' algo='sha256' writes=500 0.99 % ±1.19% ±1.58% ±2.06% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='asc' algo='sha512' writes=500 0.54 % ±2.18% ±2.92% ±3.83% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='buf' algo='sha1' writes=500 -1.70 % ±4.13% ±5.51% ±7.20% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='buf' algo='sha256' writes=500 0.23 % ±1.34% ±1.79% ±2.34% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='buf' algo='sha512' writes=500 -1.20 % ±2.72% ±3.65% ±4.80% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='utf' algo='sha1' writes=500 1.25 % ±2.88% ±3.86% ±5.09% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='utf' algo='sha256' writes=500 0.69 % ±1.15% ±1.53% ±2.01% crypto/hash-stream-throughput.js api='legacy' len=1048576 type='utf' algo='sha512' writes=500 -0.58 % ±2.04% ±2.72% ±3.54% crypto/hash-stream-throughput.js api='legacy' len=2 type='asc' algo='sha1' writes=500 -1.73 % ±7.59% ±10.12% ±13.22% crypto/hash-stream-throughput.js api='legacy' len=2 type='asc' algo='sha256' writes=500 -0.93 % ±9.65% ±12.87% ±16.82% crypto/hash-stream-throughput.js api='legacy' len=2 type='asc' algo='sha512' writes=500 -0.78 % ±8.06% ±10.76% ±14.06% crypto/hash-stream-throughput.js api='legacy' len=2 type='buf' algo='sha1' writes=500 -0.77 % ±12.87% ±17.12% ±22.28% crypto/hash-stream-throughput.js api='legacy' len=2 type='buf' algo='sha256' writes=500 -3.72 % ±11.95% ±15.90% ±20.71% crypto/hash-stream-throughput.js api='legacy' len=2 type='buf' algo='sha512' writes=500 -1.44 % ±12.00% ±16.06% ±21.09% crypto/hash-stream-throughput.js api='legacy' len=2 type='utf' algo='sha1' writes=500 -2.54 % ±10.68% ±14.29% ±18.74% crypto/hash-stream-throughput.js api='legacy' len=2 type='utf' algo='sha256' writes=500 2.10 % ±6.01% ±8.00% ±10.44% crypto/hash-stream-throughput.js api='legacy' len=2 type='utf' algo='sha512' writes=500 4.39 % ±6.23% ±8.30% ±10.80% crypto/hash-stream-throughput.js api='stream' len=102400 type='asc' algo='sha1' writes=500 2.21 % ±3.42% ±4.55% ±5.93% crypto/hash-stream-throughput.js api='stream' len=102400 type='asc' algo='sha256' writes=500 0.37 % ±1.38% ±1.83% ±2.39% crypto/hash-stream-throughput.js api='stream' len=102400 type='asc' algo='sha512' writes=500 1.42 % ±5.96% ±8.00% ±10.55% crypto/hash-stream-throughput.js api='stream' len=102400 type='buf' algo='sha1' writes=500 -2.93 % ±3.39% ±4.51% ±5.86% crypto/hash-stream-throughput.js api='stream' len=102400 type='buf' algo='sha256' writes=500 -2.65 % ±3.47% ±4.65% ±6.12% crypto/hash-stream-throughput.js api='stream' len=102400 type='buf' algo='sha512' writes=500 -2.01 % ±2.95% ±3.93% ±5.12% crypto/hash-stream-throughput.js api='stream' len=102400 type='utf' algo='sha1' writes=500 -0.70 % ±2.75% ±3.66% ±4.77% crypto/hash-stream-throughput.js api='stream' len=102400 type='utf' algo='sha256' writes=500 * -1.53 % ±1.47% ±1.95% ±2.54% crypto/hash-stream-throughput.js api='stream' len=102400 type='utf' algo='sha512' writes=500 -0.02 % ±1.94% ±2.58% ±3.37% crypto/hash-stream-throughput.js api='stream' len=1024 type='asc' algo='sha1' writes=500 -4.53 % ±5.94% ±7.91% ±10.31% crypto/hash-stream-throughput.js api='stream' len=1024 type='asc' algo='sha256' writes=500 2.12 % ±8.87% ±11.81% ±15.38% crypto/hash-stream-throughput.js api='stream' len=1024 type='asc' algo='sha512' writes=500 -0.35 % ±6.46% ±8.59% ±11.18% crypto/hash-stream-throughput.js api='stream' len=1024 type='buf' algo='sha1' writes=500 -6.04 % ±6.06% ±8.10% ±10.62% crypto/hash-stream-throughput.js api='stream' len=1024 type='buf' algo='sha256' writes=500 -0.40 % ±7.09% ±9.43% ±12.28% crypto/hash-stream-throughput.js api='stream' len=1024 type='buf' algo='sha512' writes=500 2.19 % ±6.57% ±8.74% ±11.38% crypto/hash-stream-throughput.js api='stream' len=1024 type='utf' algo='sha1' writes=500 -0.25 % ±5.70% ±7.58% ±9.86% crypto/hash-stream-throughput.js api='stream' len=1024 type='utf' algo='sha256' writes=500 -3.87 % ±9.00% ±12.06% ±15.87% crypto/hash-stream-throughput.js api='stream' len=1024 type='utf' algo='sha512' writes=500 0.89 % ±5.18% ±6.89% ±8.97% crypto/hash-stream-throughput.js api='stream' len=1048576 type='asc' algo='sha1' writes=500 4.67 % ±5.67% ±7.61% ±10.06% crypto/hash-stream-throughput.js api='stream' len=1048576 type='asc' algo='sha256' writes=500 -1.86 % ±1.91% ±2.54% ±3.31% crypto/hash-stream-throughput.js api='stream' len=1048576 type='asc' algo='sha512' writes=500 0.20 % ±3.81% ±5.07% ±6.60% crypto/hash-stream-throughput.js api='stream' len=1048576 type='buf' algo='sha1' writes=500 2.07 % ±4.77% ±6.35% ±8.27% crypto/hash-stream-throughput.js api='stream' len=1048576 type='buf' algo='sha256' writes=500 -1.66 % ±2.07% ±2.79% ±3.69% crypto/hash-stream-throughput.js api='stream' len=1048576 type='buf' algo='sha512' writes=500 1.15 % ±2.59% ±3.47% ±4.56% crypto/hash-stream-throughput.js api='stream' len=1048576 type='utf' algo='sha1' writes=500 -0.04 % ±3.35% ±4.46% ±5.80% crypto/hash-stream-throughput.js api='stream' len=1048576 type='utf' algo='sha256' writes=500 -0.80 % ±1.32% ±1.76% ±2.31% crypto/hash-stream-throughput.js api='stream' len=1048576 type='utf' algo='sha512' writes=500 0.78 % ±2.28% ±3.05% ±4.02% crypto/hash-stream-throughput.js api='stream' len=2 type='asc' algo='sha1' writes=500 -4.80 % ±5.11% ±6.81% ±8.89% crypto/hash-stream-throughput.js api='stream' len=2 type='asc' algo='sha256' writes=500 6.41 % ±7.44% ±9.92% ±12.96% crypto/hash-stream-throughput.js api='stream' len=2 type='asc' algo='sha512' writes=500 -3.37 % ±5.08% ±6.75% ±8.79% crypto/hash-stream-throughput.js api='stream' len=2 type='buf' algo='sha1' writes=500 4.72 % ±8.62% ±11.54% ±15.14% crypto/hash-stream-throughput.js api='stream' len=2 type='buf' algo='sha256' writes=500 -0.13 % ±8.75% ±11.66% ±15.20% crypto/hash-stream-throughput.js api='stream' len=2 type='buf' algo='sha512' writes=500 3.93 % ±10.00% ±13.39% ±17.60% crypto/hash-stream-throughput.js api='stream' len=2 type='utf' algo='sha1' writes=500 -4.68 % ±6.35% ±8.48% ±11.09% crypto/hash-stream-throughput.js api='stream' len=2 type='utf' algo='sha256' writes=500 2.07 % ±6.27% ±8.35% ±10.88% crypto/hash-stream-throughput.js api='stream' len=2 type='utf' algo='sha512' writes=500 11.19 % ±13.86% ±18.54% ±24.32% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=1024 sync=0 3.58 % ±5.35% ±7.12% ±9.27% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=1024 sync=1 -1.41 % ±6.04% ±8.03% ±10.46% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=10 sync=0 4.95 % ±7.64% ±10.18% ±13.28% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=10 sync=1 0.73 % ±7.20% ±9.58% ±12.47% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=64 sync=0 -2.00 % ±10.76% ±14.33% ±18.67% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='a' size=64 sync=1 * 7.54 % ±6.37% ±8.48% ±11.04% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=1024 sync=0 -1.25 % ±6.80% ±9.06% ±11.80% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=1024 sync=1 3.63 % ±6.37% ±8.47% ±11.02% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=10 sync=0 -8.76 % ±11.03% ±14.70% ±19.18% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=10 sync=1 -0.39 % ±6.52% ±8.67% ±11.30% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=64 sync=0 -3.12 % ±10.48% ±13.94% ±18.14% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='secret' size=64 sync=1 -0.91 % ±6.69% ±8.90% ±11.58% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0 3.13 % ±6.14% ±8.18% ±10.65% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1 1.27 % ±6.40% ±8.51% ±11.09% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=0 7.40 % ±10.20% ±13.59% ±17.72% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1 0.51 % ±4.42% ±5.89% ±7.66% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=0 -6.05 % ±11.86% ±15.78% ±20.54% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=1 0.25 % ±5.30% ±7.05% ±9.17% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=1024 sync=0 -1.62 % ±6.11% ±8.14% ±10.62% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=1024 sync=1 -2.71 % ±5.54% ±7.37% ±9.60% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=10 sync=0 -11.03 % ±12.55% ±16.73% ±21.82% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=10 sync=1 2.16 % ±7.94% ±10.56% ±13.75% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=64 sync=0 -1.43 % ±13.10% ±17.43% ±22.70% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='a' size=64 sync=1 1.78 % ±8.74% ±11.65% ±15.23% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=1024 sync=0 0.03 % ±6.73% ±8.96% ±11.67% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=1024 sync=1 2.11 % ±6.25% ±8.32% ±10.83% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=10 sync=0 -7.52 % ±12.87% ±17.13% ±22.32% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=10 sync=1 -0.31 % ±5.26% ±7.01% ±9.13% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=64 sync=0 -6.19 % ±12.14% ±16.15% ±21.04% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='secret' size=64 sync=1 5.20 % ±5.61% ±7.47% ±9.72% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0 -1.41 % ±5.16% ±6.86% ±8.93% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1 -2.02 % ±5.38% ±7.16% ±9.32% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0 4.51 % ±9.70% ±12.91% ±16.81% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1 -2.34 % ±5.05% ±6.73% ±8.79% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0 -2.98 % ±11.31% ±15.05% ±19.59% crypto/hkdf.js n=1000 hash='sha256' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1 4.13 % ±5.75% ±7.66% ±10.01% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=1024 sync=0 -0.52 % ±6.29% ±8.37% ±10.90% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=1024 sync=1 2.27 % ±5.29% ±7.04% ±9.17% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=10 sync=0 0.56 % ±4.16% ±5.56% ±7.26% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=10 sync=1 3.01 % ±7.83% ±10.42% ±13.56% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=64 sync=0 -1.71 % ±9.86% ±13.12% ±17.08% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='a' size=64 sync=1 5.37 % ±6.59% ±8.77% ±11.41% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=1024 sync=0 -0.67 % ±8.00% ±10.65% ±13.87% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=1024 sync=1 1.06 % ±6.22% ±8.27% ±10.77% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=10 sync=0 -7.78 % ±10.27% ±13.69% ±17.87% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=10 sync=1 2.07 % ±7.43% ±9.89% ±12.89% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=64 sync=0 -4.09 % ±9.54% ±12.69% ±16.52% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='secret' size=64 sync=1 3.97 % ±6.12% ±8.17% ±10.66% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0 4.63 % ±6.84% ±9.10% ±11.85% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1 0.42 % ±5.91% ±7.87% ±10.27% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=0 -3.78 % ±8.92% ±11.89% ±15.53% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=1 -2.52 % ±5.97% ±7.94% ±10.35% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=0 -4.50 % ±9.91% ±13.21% ±17.23% crypto/hkdf.js n=1000 hash='sha256' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=1 1.12 % ±6.75% ±8.98% ±11.69% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=1024 sync=0 3.71 % ±6.24% ±8.31% ±10.83% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=1024 sync=1 -0.92 % ±4.96% ±6.60% ±8.59% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=10 sync=0 -4.80 % ±9.25% ±12.34% ±16.13% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=10 sync=1 -0.13 % ±8.07% ±10.73% ±13.97% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=64 sync=0 1.56 % ±11.69% ±15.56% ±20.27% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='a' size=64 sync=1 -1.34 % ±6.49% ±8.64% ±11.25% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=1024 sync=0 3.11 % ±6.80% ±9.05% ±11.80% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=1024 sync=1 3.27 % ±6.34% ±8.43% ±10.98% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=10 sync=0 -1.96 % ±11.09% ±14.76% ±19.23% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=10 sync=1 3.00 % ±6.19% ±8.24% ±10.72% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=64 sync=0 -4.61 % ±11.96% ±15.91% ±20.72% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='secret' size=64 sync=1 0.82 % ±5.19% ±6.90% ±8.98% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0 1.35 % ±6.04% ±8.03% ±10.46% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1 2.36 % ±6.35% ±8.45% ±11.00% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0 8.99 % ±10.51% ±13.98% ±18.20% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1 3.55 % ±5.01% ±6.67% ±8.68% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0 3.82 % ±11.76% ±15.68% ±20.49% crypto/hkdf.js n=1000 hash='sha256' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1 -0.69 % ±5.35% ±7.12% ±9.26% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=1024 sync=0 -5.23 % ±6.29% ±8.37% ±10.90% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=1024 sync=1 -1.70 % ±5.62% ±7.48% ±9.76% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=10 sync=0 -0.10 % ±12.61% ±16.78% ±21.83% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=10 sync=1 5.43 % ±7.86% ±10.46% ±13.61% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=64 sync=0 5.71 % ±11.75% ±15.65% ±20.41% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='a' size=64 sync=1 -0.72 % ±9.60% ±12.80% ±16.72% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=1024 sync=0 0.85 % ±6.77% ±9.00% ±11.72% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=1024 sync=1 3.56 % ±6.75% ±8.98% ±11.69% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=10 sync=0 2.07 % ±10.68% ±14.22% ±18.52% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=10 sync=1 0.02 % ±6.34% ±8.44% ±10.99% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=64 sync=0 -2.62 % ±13.00% ±17.30% ±22.52% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='secret' size=64 sync=1 -0.53 % ±4.72% ±6.28% ±8.18% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0 3.50 % ±9.37% ±12.47% ±16.26% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1 -0.12 % ±5.52% ±7.34% ±9.56% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=0 -1.17 % ±8.69% ±11.56% ±15.04% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=10 sync=1 -0.50 % ±5.01% ±6.67% ±8.68% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=0 9.39 % ±11.56% ±15.41% ±20.09% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='' key='this-is-a-much-longer-secret' size=64 sync=1 1.35 % ±5.57% ±7.42% ±9.66% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=1024 sync=0 2.84 % ±8.55% ±11.38% ±14.81% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=1024 sync=1 3.13 % ±5.73% ±7.63% ±9.93% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=10 sync=0 2.81 % ±10.90% ±14.50% ±18.88% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=10 sync=1 1.98 % ±6.89% ±9.18% ±11.96% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=64 sync=0 -3.11 % ±11.49% ±15.29% ±19.90% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='a' size=64 sync=1 7.00 % ±9.14% ±12.21% ±16.00% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=1024 sync=0 -0.77 % ±8.77% ±11.67% ±15.19% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=1024 sync=1 0.07 % ±5.96% ±7.93% ±10.32% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=10 sync=0 5.17 % ±11.69% ±15.57% ±20.30% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=10 sync=1 -3.17 % ±5.49% ±7.30% ±9.51% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=64 sync=0 5.81 % ±13.03% ±17.33% ±22.56% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='secret' size=64 sync=1 -4.56 % ±5.90% ±7.85% ±10.22% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0 2.35 % ±7.74% ±10.29% ±13.40% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1 -1.81 % ±4.92% ±6.55% ±8.52% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0 7.39 % ±11.85% ±15.77% ±20.55% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1 -0.39 % ±4.96% ±6.61% ±8.61% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0 -0.16 % ±10.95% ±14.57% ±18.96% crypto/hkdf.js n=1000 hash='sha512' info='info' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1 -1.46 % ±5.89% ±7.85% ±10.23% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=1024 sync=0 -3.65 % ±6.43% ±8.56% ±11.14% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=1024 sync=1 0.40 % ±6.51% ±8.67% ±11.29% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=10 sync=0 -1.38 % ±7.46% ±9.94% ±12.95% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=10 sync=1 2.88 % ±8.11% ±10.79% ±14.04% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=64 sync=0 -3.56 % ±10.69% ±14.22% ±18.51% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='a' size=64 sync=1 4.62 % ±6.56% ±8.73% ±11.37% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=1024 sync=0 -0.66 % ±7.56% ±10.06% ±13.10% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=1024 sync=1 2.60 % ±5.86% ±7.80% ±10.15% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=10 sync=0 2.61 % ±11.51% ±15.32% ±19.95% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=10 sync=1 2.53 % ±7.79% ±10.40% ±13.61% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=64 sync=0 2.38 % ±11.09% ±14.76% ±19.22% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='secret' size=64 sync=1 -1.18 % ±6.38% ±8.49% ±11.06% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=0 3.67 % ±7.75% ±10.33% ±13.47% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=1024 sync=1 4.56 % ±6.08% ±8.09% ±10.54% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=0 9.48 % ±10.45% ±13.92% ±18.16% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=10 sync=1 -2.32 % ±5.54% ±7.38% ±9.62% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=0 -0.57 % ±10.46% ±13.91% ±18.11% crypto/hkdf.js n=1000 hash='sha512' info='' salt='' key='this-is-a-much-longer-secret' size=64 sync=1 3.32 % ±4.26% ±5.66% ±7.37% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=1024 sync=0 0.09 % ±8.69% ±11.56% ±15.05% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=1024 sync=1 -1.87 % ±6.54% ±8.70% ±11.32% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=10 sync=0 -4.10 % ±11.28% ±15.02% ±19.58% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=10 sync=1 3.04 % ±6.58% ±8.76% ±11.41% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=64 sync=0 7.91 % ±10.83% ±14.42% ±18.81% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='a' size=64 sync=1 4.98 % ±6.56% ±8.74% ±11.40% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=1024 sync=0 -3.16 % ±8.64% ±11.50% ±14.97% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=1024 sync=1 3.48 % ±6.00% ±7.99% ±10.39% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=10 sync=0 -6.22 % ±9.83% ±13.09% ±17.04% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=10 sync=1 2.51 % ±6.54% ±8.70% ±11.32% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=64 sync=0 -4.66 % ±11.69% ±15.55% ±20.24% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='secret' size=64 sync=1 4.91 % ±5.54% ±7.38% ±9.62% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=0 -0.02 % ±9.13% ±12.16% ±15.85% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=1024 sync=1 0.36 % ±4.88% ±6.50% ±8.46% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=0 0.39 % ±10.97% ±14.60% ±19.00% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=10 sync=1 1.93 % ±5.80% ±7.72% ±10.05% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=0 3.82 % ±10.72% ±14.29% ±18.65% crypto/hkdf.js n=1000 hash='sha512' info='' salt='salt' key='this-is-a-much-longer-secret' size=64 sync=1 -0.57 % ±5.56% ±7.40% ±9.63% crypto/keygen.js n=100 method='dsaAsync' -0.08 % ±2.69% ±3.59% ±4.67% crypto/keygen.js n=100 method='dsaSync' -0.18 % ±2.56% ±3.41% ±4.44% crypto/keygen.js n=100 method='rsaAsync' 1.02 % ±3.88% ±5.16% ±6.72% crypto/keygen.js n=100 method='rsaSync' -2.04 % ±4.37% ±5.82% ±7.58% crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject' mode='async-parallel' 0.21 % ±1.43% ±1.90% ±2.47% crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject' mode='async-serial' 8.73 % ±15.28% ±20.36% ±26.58% crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject' mode='sync' -7.20 % ±11.14% ±14.82% ±19.30% crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject.unique' mode='async-parallel' 5.06 % ±8.80% ±11.72% ±15.27% crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject.unique' mode='async-serial' -5.08 % ±16.61% ±22.10% ±28.76% crypto/oneshot-sign-verify.js n=1000 keyFormat='keyObject.unique' mode='sync' -3.46 % ±10.76% ±14.32% ±18.64% crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='async-parallel' ** 11.29 % ±8.05% ±10.72% ±13.96% crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='async-serial' -3.98 % ±8.18% ±10.89% ±14.17% crypto/oneshot-sign-verify.js n=1000 keyFormat='pem' mode='sync' 2.95 % ±4.18% ±5.56% ±7.24% crypto/oneshot-sign-verify.js n=1000 keyFormat='pem.unique' mode='async-parallel' 1.05 % ±7.86% ±10.45% ±13.61% crypto/oneshot-sign-verify.js n=1000 keyFormat='pem.unique' mode='async-serial' 5.59 % ±10.68% ±14.21% ±18.49% crypto/oneshot-sign-verify.js n=1000 keyFormat='pem.unique' mode='sync' -0.97 % ±4.81% ±6.39% ±8.32% crypto/randomBytes.js n=1000 size=1024 0.26 % ±6.36% ±8.46% ±11.03% crypto/randomBytes.js n=1000 size=524288 3.00 % ±5.42% ±7.22% ±9.40% crypto/randomBytes.js n=1000 size=64 ** 12.41 % ±7.86% ±10.47% ±13.65% crypto/randomBytes.js n=1000 size=8192 -4.65 % ±5.34% ±7.12% ±9.28% crypto/randomInt.js n=100000 max=10000 min=-10000 mode='async-parallel' -0.06 % ±4.17% ±5.55% ±7.23% crypto/randomInt.js n=100000 max=10000 min=-10000 mode='async-sequential' 5.94 % ±6.57% ±8.75% ±11.41% crypto/randomInt.js n=100000 max=10000 min=-10000 mode='sync' -1.64 % ±6.63% ±8.83% ±11.50% crypto/randomInt.js n=100000 max=10000 min=-100 mode='async-parallel' * -5.70 % ±4.31% ±5.74% ±7.47% crypto/randomInt.js n=100000 max=10000 min=-100 mode='async-sequential' ** -8.32 % ±5.87% ±7.81% ±10.16% crypto/randomInt.js n=100000 max=10000 min=-100 mode='sync' * -5.64 % ±4.69% ±6.26% ±8.20% crypto/randomInt.js n=100000 max=10000 min=-140737488355327 mode='async-parallel' 3.94 % ±5.66% ±7.53% ±9.80% crypto/randomInt.js n=100000 max=10000 min=-140737488355327 mode='async-sequential' 1.04 % ±6.63% ±8.82% ±11.48% crypto/randomInt.js n=100000 max=10000 min=-140737488355327 mode='sync' 3.95 % ±6.88% ±9.16% ±11.93% crypto/randomInt.js n=100000 max=100 min=-10000 mode='async-parallel' 2.41 % ±4.80% ±6.39% ±8.31% crypto/randomInt.js n=100000 max=100 min=-10000 mode='async-sequential' -5.10 % ±7.29% ±9.71% ±12.63% crypto/randomInt.js n=100000 max=100 min=-10000 mode='sync' 1.12 % ±6.49% ±8.64% ±11.24% crypto/randomInt.js n=100000 max=100 min=-100 mode='async-parallel' -1.28 % ±4.65% ±6.19% ±8.06% crypto/randomInt.js n=100000 max=100 min=-100 mode='async-sequential' 0.93 % ±6.00% ±7.99% ±10.41% crypto/randomInt.js n=100000 max=100 min=-100 mode='sync' -3.03 % ±6.67% ±8.88% ±11.58% crypto/randomInt.js n=100000 max=100 min=-140737488355327 mode='async-parallel' -2.40 % ±6.25% ±8.32% ±10.82% crypto/randomInt.js n=100000 max=100 min=-140737488355327 mode='async-sequential' 0.23 % ±5.12% ±6.81% ±8.87% crypto/randomInt.js n=100000 max=100 min=-140737488355327 mode='sync' 1.27 % ±7.38% ±9.83% ±12.80% crypto/randomInt.js n=100000 max=140737488355328 min=-10000 mode='async-parallel' -0.90 % ±5.08% ±6.76% ±8.79% crypto/randomInt.js n=100000 max=140737488355328 min=-10000 mode='async-sequential' -2.44 % ±7.31% ±9.72% ±12.66% crypto/randomInt.js n=100000 max=140737488355328 min=-10000 mode='sync' -2.77 % ±6.29% ±8.39% ±10.96% crypto/randomInt.js n=100000 max=140737488355328 min=-100 mode='async-parallel' -4.11 % ±6.40% ±8.52% ±11.10% crypto/randomInt.js n=100000 max=140737488355328 min=-100 mode='async-sequential' -0.69 % ±6.86% ±9.14% ±11.90% crypto/randomInt.js n=100000 max=140737488355328 min=-100 mode='sync' -2.72 % ±5.86% ±7.81% ±10.18% crypto/randomInt.js n=100000 max=140737488355328 min=-140737488355327 mode='async-parallel' -0.28 % ±5.14% ±6.85% ±8.93% crypto/randomInt.js n=100000 max=140737488355328 min=-140737488355327 mode='async-sequential' 4.15 % ±6.29% ±8.38% ±10.92% crypto/randomInt.js n=100000 max=140737488355328 min=-140737488355327 mode='sync' 6.96 % ±10.92% ±14.61% ±19.18% crypto/randomInt.js n=1000 max=10000 min=-10000 mode='async-parallel' -1.45 % ±6.05% ±8.07% ±10.53% crypto/randomInt.js n=1000 max=10000 min=-10000 mode='async-sequential' 2.35 % ±6.70% ±8.92% ±11.62% crypto/randomInt.js n=1000 max=10000 min=-10000 mode='sync' -3.15 % ±6.98% ±9.29% ±12.11% crypto/randomInt.js n=1000 max=10000 min=-100 mode='async-parallel' 4.20 % ±6.13% ±8.18% ±10.71% crypto/randomInt.js n=1000 max=10000 min=-100 mode='async-sequential' -0.93 % ±5.62% ±7.48% ±9.74% crypto/randomInt.js n=1000 max=10000 min=-100 mode='sync' -0.21 % ±8.01% ±10.66% ±13.88% crypto/randomInt.js n=1000 max=10000 min=-140737488355327 mode='async-parallel' -2.62 % ±11.09% ±14.84% ±19.48% crypto/randomInt.js n=1000 max=10000 min=-140737488355327 mode='async-sequential' -0.54 % ±8.12% ±10.82% ±14.12% crypto/randomInt.js n=1000 max=10000 min=-140737488355327 mode='sync' 2.37 % ±8.86% ±11.79% ±15.34% crypto/randomInt.js n=1000 max=100 min=-10000 mode='async-parallel' -1.08 % ±6.15% ±8.18% ±10.65% crypto/randomInt.js n=1000 max=100 min=-10000 mode='async-sequential' -0.77 % ±6.52% ±8.68% ±11.31% crypto/randomInt.js n=1000 max=100 min=-10000 mode='sync' -2.01 % ±9.47% ±12.60% ±16.41% crypto/randomInt.js n=1000 max=100 min=-100 mode='async-parallel' -4.11 % ±7.38% ±9.87% ±12.96% crypto/randomInt.js n=1000 max=100 min=-100 mode='async-sequential' -1.91 % ±5.75% ±7.67% ±10.03% crypto/randomInt.js n=1000 max=100 min=-100 mode='sync' 5.47 % ±11.23% ±14.98% ±19.57% crypto/randomInt.js n=1000 max=100 min=-140737488355327 mode='async-parallel' -0.48 % ±7.05% ±9.38% ±12.21% crypto/randomInt.js n=1000 max=100 min=-140737488355327 mode='async-sequential' * -4.76 % ±4.67% ±6.21% ±8.09% crypto/randomInt.js n=1000 max=100 min=-140737488355327 mode='sync' 1.84 % ±9.68% ±12.88% ±16.77% crypto/randomInt.js n=1000 max=140737488355328 min=-10000 mode='async-parallel' 3.69 % ±6.40% ±8.52% ±11.09% crypto/randomInt.js n=1000 max=140737488355328 min=-10000 mode='async-sequential' -4.11 % ±5.83% ±7.77% ±10.13% crypto/randomInt.js n=1000 max=140737488355328 min=-10000 mode='sync' 0.56 % ±8.40% ±11.20% ±14.60% crypto/randomInt.js n=1000 max=140737488355328 min=-100 mode='async-parallel' -2.42 % ±5.80% ±7.76% ±10.19% crypto/randomInt.js n=1000 max=140737488355328 min=-100 mode='async-sequential' * -7.11 % ±6.93% ±9.27% ±12.14% crypto/randomInt.js n=1000 max=140737488355328 min=-100 mode='sync' -5.51 % ±6.45% ±8.59% ±11.19% crypto/randomInt.js n=1000 max=140737488355328 min=-140737488355327 mode='async-parallel' -2.53 % ±5.36% ±7.15% ±9.33% crypto/randomInt.js n=1000 max=140737488355328 min=-140737488355327 mode='async-sequential' -1.35 % ±6.38% ±8.48% ±11.04% crypto/randomInt.js n=1000 max=140737488355328 min=-140737488355327 mode='sync' 1.24 % ±10.07% ±13.39% ±17.43% crypto/randomUUID.js disableEntropyCache=0 n=10000000 -2.20 % ±3.83% ±5.10% ±6.64% crypto/randomUUID.js disableEntropyCache=1 n=10000000 -3.36 % ±4.85% ±6.47% ±8.45% crypto/rsa-encrypt-decrypt-throughput.js len=16 keylen='1024' n=500 0.89 % ±2.80% ±3.74% ±4.89% crypto/rsa-encrypt-decrypt-throughput.js len=16 keylen='2048' n=500 -0.92 % ±2.34% ±3.11% ±4.05% crypto/rsa-encrypt-decrypt-throughput.js len=16 keylen='4096' n=500 0.32 % ±0.93% ±1.23% ±1.61% crypto/rsa-encrypt-decrypt-throughput.js len=32 keylen='1024' n=500 -1.61 % ±2.16% ±2.87% ±3.74% crypto/rsa-encrypt-decrypt-throughput.js len=32 keylen='2048' n=500 * 2.96 % ±2.41% ±3.24% ±4.28% crypto/rsa-encrypt-decrypt-throughput.js len=32 keylen='4096' n=500 0.25 % ±0.94% ±1.26% ±1.64% crypto/rsa-encrypt-decrypt-throughput.js len=64 keylen='1024' n=500 -2.46 % ±2.53% ±3.37% ±4.40% crypto/rsa-encrypt-decrypt-throughput.js len=64 keylen='2048' n=500 0.41 % ±1.45% ±1.94% ±2.56% crypto/rsa-encrypt-decrypt-throughput.js len=64 keylen='4096' n=500 -0.53 % ±1.25% ±1.66% ±2.17% crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA1' writes=500 -0.42 % ±1.90% ±2.53% ±3.30% crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA224' writes=500 -4.23 % ±6.61% ±8.90% ±11.81% crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA256' writes=500 0.18 % ±4.58% ±6.12% ±8.03% crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA384' writes=500 3.04 % ±3.82% ±5.14% ±6.80% crypto/rsa-sign-verify-throughput.js len=102400 keylen='1024' algo='SHA512' writes=500 -3.34 % ±7.00% ±9.34% ±12.21% crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA1' writes=500 -1.60 % ±2.77% ±3.69% ±4.80% crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA224' writes=500 2.81 % ±6.15% ±8.22% ±10.78% crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA256' writes=500 4.33 % ±6.92% ±9.32% ±12.36% crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA384' writes=500 -0.15 % ±1.44% ±1.92% ±2.50% crypto/rsa-sign-verify-throughput.js len=102400 keylen='2048' algo='SHA512' writes=500 3.02 % ±3.79% ±5.08% ±6.71% crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA1' writes=500 3.39 % ±6.40% ±8.52% ±11.09% crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA224' writes=500 -0.21 % ±14.03% ±18.67% ±24.30% crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA256' writes=500 -0.98 % ±4.61% ±6.15% ±8.04% crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA384' writes=500 -0.95 % ±5.30% ±7.05% ±9.18% crypto/rsa-sign-verify-throughput.js len=1024 keylen='1024' algo='SHA512' writes=500 -3.56 % ±5.63% ±7.53% ±9.87% crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA1' writes=500 -0.58 % ±13.50% ±17.96% ±23.37% crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA224' writes=500 -3.34 % ±13.14% ±17.48% ±22.75% crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA256' writes=500 6.10 % ±16.68% ±22.21% ±28.94% crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA384' writes=500 6.83 % ±10.37% ±13.90% ±18.31% crypto/rsa-sign-verify-throughput.js len=1024 keylen='2048' algo='SHA512' writes=500 1.48 % ±13.41% ±17.84% ±23.22% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA1' writes=500 0.13 % ±0.90% ±1.20% ±1.57% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA224' writes=500 0.77 % ±0.91% ±1.21% ±1.58% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA256' writes=500 1.28 % ±2.55% ±3.42% ±4.51% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA384' writes=500 0.93 % ±2.04% ±2.73% ±3.57% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='1024' algo='SHA512' writes=500 * 3.06 % ±2.43% ±3.26% ±4.28% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA1' writes=500 1.57 % ±1.69% ±2.27% ±2.99% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA224' writes=500 -0.31 % ±1.00% ±1.33% ±1.73% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA256' writes=500 0.17 % ±1.21% ±1.61% ±2.10% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA384' writes=500 -1.03 % ±2.17% ±2.90% ±3.81% crypto/rsa-sign-verify-throughput.js len=1048576 keylen='2048' algo='SHA512' writes=500 -0.94 % ±1.53% ±2.04% ±2.66% crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA1' writes=500 -1.37 % ±3.39% ±4.56% ±6.04% crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA224' writes=500 -0.14 % ±2.56% ±3.42% ±4.49% crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA256' writes=500 1.65 % ±2.09% ±2.79% ±3.63% crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA384' writes=500 -4.54 % ±5.02% ±6.75% ±8.94% crypto/rsa-sign-verify-throughput.js len=204800 keylen='1024' algo='SHA512' writes=500 -0.33 % ±0.97% ±1.29% ±1.69% crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA1' writes=500 -3.02 % ±7.79% ±10.39% ±13.55% crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA224' writes=500 -0.42 % ±1.81% ±2.41% ±3.13% crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA256' writes=500 0.05 % ±2.56% ±3.41% ±4.43% crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA384' writes=500 -0.17 % ±0.87% ±1.16% ±1.51% crypto/rsa-sign-verify-throughput.js len=204800 keylen='2048' algo='SHA512' writes=500 4.56 % ±5.83% ±7.85% ±10.41% crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA1' writes=500 3.16 % ±4.77% ±6.43% ±8.53% crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA224' writes=500 1.43 % ±3.86% ±5.15% ±6.73% crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA256' writes=500 -3.89 % ±4.75% ±6.39% ±8.45% crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA384' writes=500 1.82 % ±4.46% ±5.96% ±7.80% crypto/rsa-sign-verify-throughput.js len=307200 keylen='1024' algo='SHA512' writes=500 -0.81 % ±1.51% ±2.00% ±2.61% crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA1' writes=500 -3.75 % ±5.90% ±7.95% ±10.55% crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA224' writes=500 2.18 % ±3.36% ±4.50% ±5.94% crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA256' writes=500 2.45 % ±4.52% ±6.02% ±7.87% crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA384' writes=500 -0.96 % ±4.17% ±5.59% ±7.38% crypto/rsa-sign-verify-throughput.js len=307200 keylen='2048' algo='SHA512' writes=500 1.42 % ±3.70% ±4.97% ±6.54% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=100 sync='createHash' 3.49 % ±9.81% ±13.06% ±17.00% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=100 sync='subtle' -5.42 % ±8.72% ±11.60% ±15.10% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=10 sync='createHash' 5.59 % ±9.63% ±12.82% ±16.68% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=10 sync='subtle' 0.26 % ±7.26% ±9.66% ±12.57% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=20 sync='createHash' 0.78 % ±12.64% ±16.85% ±21.98% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=20 sync='subtle' 4.90 % ±8.44% ±11.24% ±14.65% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=50 sync='createHash' -3.63 % ±9.08% ±12.08% ±15.73% crypto/webcrypto-digest.js n=1000 method='SHA-1' data=50 sync='subtle' 1.19 % ±7.79% ±10.36% ±13.49% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=100 sync='createHash' 4.05 % ±11.69% ±15.60% ±20.39% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=100 sync='subtle' -0.36 % ±8.68% ±11.55% ±15.03% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=10 sync='createHash' 4.09 % ±9.05% ±12.04% ±15.68% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=10 sync='subtle' -0.85 % ±7.38% ±9.83% ±12.79% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=20 sync='createHash' -5.72 % ±10.73% ±14.27% ±18.57% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=20 sync='subtle' -1.80 % ±7.64% ±10.16% ±13.23% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=50 sync='createHash' 0.12 % ±9.15% ±12.18% ±15.85% crypto/webcrypto-digest.js n=1000 method='SHA-256' data=50 sync='subtle' 4.25 % ±8.17% ±10.88% ±14.16% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=100 sync='createHash' -3.23 % ±8.37% ±11.14% ±14.50% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=100 sync='subtle' -2.35 % ±7.69% ±10.24% ±13.33% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=10 sync='createHash' -4.16 % ±8.77% ±11.67% ±15.19% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=10 sync='subtle' -5.11 % ±7.55% ±10.04% ±13.07% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=20 sync='createHash' 1.79 % ±9.17% ±12.20% ±15.88% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=20 sync='subtle' 1.07 % ±8.19% ±10.91% ±14.22% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=50 sync='createHash' -1.41 % ±9.14% ±12.16% ±15.83% crypto/webcrypto-digest.js n=1000 method='SHA-384' data=50 sync='subtle' -1.84 % ±7.41% ±9.87% ±12.84% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=100 sync='createHash' -2.31 % ±10.79% ±14.38% ±18.75% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=100 sync='subtle' -0.67 % ±8.00% ±10.64% ±13.85% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=10 sync='createHash' 2.35 % ±12.91% ±17.20% ±22.44% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=10 sync='subtle' -5.72 % ±8.80% ±11.71% ±15.25% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=20 sync='createHash' -3.93 % ±8.62% ±11.49% ±14.98% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=20 sync='subtle' -3.18 % ±8.90% ±11.84% ±15.42% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=50 sync='createHash' -1.55 % ±7.90% ±10.52% ±13.69% crypto/webcrypto-digest.js n=1000 method='SHA-512' data=50 sync='subtle' -1.02 % ±7.82% ±10.40% ±13.54% misc/arguments.js n=1000000 method='argumentsAndApply' -0.33 % ±1.40% ±1.87% ±2.43% misc/arguments.js n=1000000 method='predefined' -0.99 % ±1.48% ±1.97% ±2.56% misc/arguments.js n=1000000 method='restAndApply' 1.52 % ±3.80% ±5.06% ±6.60% misc/arguments.js n=1000000 method='restAndSpread' -1.13 % ±1.33% ±1.77% ±2.31% misc/freelist.js n=100000 1.12 % ±2.27% ±3.02% ±3.95% misc/getstringwidth.js n=100000 type='ascii' 0.09 % ±0.94% ±1.26% ±1.64% misc/getstringwidth.js n=100000 type='emojiseq' -0.98 % ±5.92% ±7.88% ±10.26% misc/getstringwidth.js n=100000 type='fullwidth' 0.72 % ±5.99% ±7.97% ±10.39% misc/getstringwidth.js n=100000 type='mixed' -0.38 % ±3.25% ±4.33% ±5.64% misc/hidestackframes.js n=100000 type='direct-call-noerr' 2.30 % ±6.78% ±9.05% ±11.85% misc/hidestackframes.js n=100000 type='direct-call-throw' 2.80 % ±4.32% ±5.74% ±7.48% misc/hidestackframes.js n=100000 type='hide-stackframes-noerr' 2.94 % ±5.81% ±7.74% ±10.10% misc/hidestackframes.js n=100000 type='hide-stackframes-throw' 1.11 % ±3.22% ±4.29% ±5.58% misc/object-property-bench.js n=1000000000 method='property' -1.22 % ±3.21% ±4.30% ±5.66% misc/object-property-bench.js n=1000000000 method='string' -1.70 % ±5.82% ±7.75% ±10.10% misc/object-property-bench.js n=1000000000 method='symbol' 0.96 % ±4.12% ±5.48% ±7.14% misc/object-property-bench.js n=1000000000 method='variable' -0.16 % ±3.15% ±4.20% ±5.49% misc/print.js code='1' dur=1 * 1.00 % ±0.98% ±1.31% ±1.70% misc/print.js code='process' dur=1 0.68 % ±1.29% ±1.72% ±2.25% misc/print.js code='process.versions' dur=1 0.38 % ±1.11% ±1.48% ±1.92% misc/print.js code='"string"' dur=1 0.97 % ±1.21% ±1.60% ±2.09% misc/punycode.js val='belgië.icom.museum' n=1024 method='icu' 0.36 % ±7.33% ±9.76% ±12.72% misc/punycode.js val='belgië.icom.museum' n=1024 method='punycode' 3.47 % ±5.10% ±6.80% ±8.86% misc/punycode.js val='českárepublika.icom.museum' n=1024 method='icu' 0.22 % ±9.19% ±12.25% ±15.99% misc/punycode.js val='českárepublika.icom.museum' n=1024 method='punycode' 1.13 % ±4.38% ±5.83% ±7.60% misc/punycode.js val='éire.icom.museum' n=1024 method='icu' 0.84 % ±6.88% ±9.20% ±12.06% misc/punycode.js val='éire.icom.museum' n=1024 method='punycode' -1.15 % ±6.83% ±9.09% ±11.84% misc/punycode.js val='ísland.icom.museum' n=1024 method='icu' -1.18 % ±6.79% ±9.03% ±11.75% misc/punycode.js val='ísland.icom.museum' n=1024 method='punycode' -0.17 % ±7.50% ±9.98% ±12.99% misc/punycode.js val='magyarország.icom.museum' n=1024 method='icu' -5.57 % ±6.16% ±8.20% ±10.67% misc/punycode.js val='magyarország.icom.museum' n=1024 method='punycode' -2.93 % ±4.19% ±5.58% ±7.29% misc/punycode.js val='österreich.icom.museum' n=1024 method='icu' 0.83 % ±7.40% ±9.84% ±12.81% misc/punycode.js val='österreich.icom.museum' n=1024 method='punycode' * 4.99 % ±4.51% ±6.00% ±7.81% misc/punycode.js val='افغانستا.icom.museum' n=1024 method='icu' -3.78 % ±8.91% ±11.88% ±15.50% misc/punycode.js val='افغانستا.icom.museum' n=1024 method='punycode' -3.13 % ±4.55% ±6.06% ±7.90% misc/punycode.js val='الأردن.icom.museum' n=1024 method='icu' 1.13 % ±6.91% ±9.20% ±11.98% misc/punycode.js val='الأردن.icom.museum' n=1024 method='punycode' 1.00 % ±3.89% ±5.18% ±6.75% misc/punycode.js val='الجزائر.icom.museum' n=1024 method='icu' -1.36 % ±7.08% ±9.42% ±12.27% misc/punycode.js val='الجزائر.icom.museum' n=1024 method='punycode' 0.85 % ±5.36% ±7.13% ±9.28% misc/punycode.js val='القمر.icom.museum' n=1024 method='icu' 2.66 % ±7.30% ±9.71% ±12.64% misc/punycode.js val='القمر.icom.museum' n=1024 method='punycode' -0.29 % ±4.25% ±5.65% ±7.36% misc/punycode.js val='ايران.icom.museum' n=1024 method='icu' -6.12 % ±6.62% ±8.82% ±11.49% misc/punycode.js val='ايران.icom.museum' n=1024 method='punycode' -3.61 % ±3.93% ±5.23% ±6.81% misc/punycode.js val='تشادر.icom.museum' n=1024 method='icu' 3.06 % ±8.24% ±10.96% ±14.28% misc/punycode.js val='تشادر.icom.museum' n=1024 method='punycode' 2.14 % ±3.57% ±4.75% ±6.18% misc/punycode.js val='مصر.icom.museum' n=1024 method='icu' 4.63 % ±6.29% ±8.38% ±10.93% misc/punycode.js val='مصر.icom.museum' n=1024 method='punycode' -2.92 % ±4.65% ±6.19% ±8.08% misc/punycode.js val='איקו״ם.ישראל.museum' n=1024 method='icu' -3.81 % ±8.28% ±11.08% ±14.53% misc/punycode.js val='איקו״ם.ישראל.museum' n=1024 method='punycode' -5.40 % ±6.12% ±8.15% ±10.61% misc/punycode.js val='ελλάδα.icom.museum' n=1024 method='icu' * 8.22 % ±7.56% ±10.06% ±13.10% misc/punycode.js val='ελλάδα.icom.museum' n=1024 method='punycode' -0.55 % ±4.36% ±5.80% ±7.56% misc/punycode.js val='κυπρος.icom.museum' n=1024 method='icu' -0.92 % ±9.30% ±12.37% ±16.10% misc/punycode.js val='κυπρος.icom.museum' n=1024 method='punycode' 3.61 % ±3.98% ±5.30% ±6.91% misc/punycode.js val='беларусь.icom.museum' n=1024 method='icu' -3.90 % ±6.25% ±8.33% ±10.86% misc/punycode.js val='беларусь.icom.museum' n=1024 method='punycode' -4.36 % ±4.79% ±6.37% ±8.30% misc/punycode.js val='българия.icom.museum' n=1024 method='icu' -0.02 % ±6.96% ±9.27% ±12.10% misc/punycode.js val='българия.icom.museum' n=1024 method='punycode' -1.12 % ±6.08% ±8.09% ±10.53% misc/punycode.js val='भारत.icom.museum' n=1024 method='icu' -3.67 % ±7.20% ±9.60% ±12.53% misc/punycode.js val='भारत.icom.museum' n=1024 method='punycode' -1.46 % ±5.88% ±7.84% ±10.21% misc/punycode.js val='বাংলাদেশ.icom.museum' n=1024 method='icu' -3.30 % ±7.05% ±9.40% ±12.28% misc/punycode.js val='বাংলাদেশ.icom.museum' n=1024 method='punycode' -3.49 % ±5.81% ±7.74% ±10.08% misc/punycode.js val='中国.icom.museum' n=1024 method='icu' -1.66 % ±8.83% ±11.75% ±15.29% misc/punycode.js val='中国.icom.museum' n=1024 method='punycode' -2.52 % ±6.16% ±8.20% ±10.67% misc/punycode.js val='日本.icom.museum' n=1024 method='icu' 0.71 % ±6.89% ±9.17% ±11.96% misc/punycode.js val='日本.icom.museum' n=1024 method='punycode' -4.09 % ±5.94% ±7.91% ±10.29% misc/startup.js mode='process' script='benchmark/fixtures/require-builtins' dur=1 -0.83 % ±1.33% ±1.78% ±2.32% misc/startup.js mode='process' script='benchmark/fixtures/require-cachable' dur=1 -0.50 % ±1.33% ±1.77% ±2.31% misc/startup.js mode='process' script='test/fixtures/semicolon' dur=1 0.04 % ±1.34% ±1.79% ±2.33% misc/startup.js mode='worker' script='benchmark/fixtures/require-builtins' dur=1 -1.81 % ±2.81% ±3.74% ±4.87% misc/startup.js mode='worker' script='benchmark/fixtures/require-cachable' dur=1 -0.13 % ±3.43% ±4.57% ±5.95% misc/startup.js mode='worker' script='test/fixtures/semicolon' dur=1 -0.53 % ±2.57% ±3.42% ±4.45% misc/trace.js method='isTraceCategoryEnabled' n=100000 4.03 % ±9.95% ±13.25% ±17.25% misc/trace.js method='trace' n=100000 1.97 % ±3.25% ±4.32% ±5.63% misc/util-extend-vs-object-assign.js n=100000 type='assign' 1.94 % ±2.20% ±2.92% ±3.81% misc/util-extend-vs-object-assign.js n=100000 type='extend' -0.04 % ±2.00% ±2.66% ±3.46% streams/creation.js kind='duplex' n=50000000 0.77 % ±2.15% ±2.86% ±3.73% streams/creation.js kind='readable' n=50000000 -0.07 % ±1.49% ±1.98% ±2.58% streams/creation.js kind='transform' n=50000000 -1.29 % ±5.53% ±7.36% ±9.58% streams/creation.js kind='writable' n=50000000 * -1.37 % ±1.29% ±1.71% ±2.23% streams/pipe.js n=5000000 0.69 % ±2.69% ±3.57% ±4.65% streams/pipe-object-mode.js n=5000000 3.21 % ±5.64% ±7.51% ±9.80% streams/readable-async-iterator.js sync='no' n=100000 2.98 % ±3.31% ±4.41% ±5.74% streams/readable-async-iterator.js sync='yes' n=100000 -0.41 % ±5.25% ±6.98% ±9.08% streams/readable-bigread.js n=1000 -1.96 % ±3.36% ±4.48% ±5.84% streams/readable-bigunevenread.js n=1000 -0.09 % ±4.01% ±5.34% ±6.95% streams/readable-boundaryread.js type='buffer' n=2000 -1.54 % ±1.80% ±2.39% ±3.12% streams/readable-boundaryread.js type='string' n=2000 -1.72 % ±3.37% ±4.48% ±5.83% streams/readable-from.js n=10000000 1.21 % ±4.20% ±5.59% ±7.27% streams/readable-readall.js n=5000 0.68 % ±3.11% ±4.14% ±5.39% streams/readable-unevenread.js n=1000 -1.03 % ±3.14% ±4.18% ±5.45% streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='no' n=2000000 -0.97 % ±3.05% ±4.06% ±5.29% streams/writable-manywrites.js len=1024 callback='no' writev='no' sync='yes' n=2000000 0.97 % ±11.88% ±15.82% ±20.63% streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='no' n=2000000 0.76 % ±2.38% ±3.17% ±4.13% streams/writable-manywrites.js len=1024 callback='no' writev='yes' sync='yes' n=2000000 -6.28 % ±8.72% ±11.62% ±15.15% streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='no' n=2000000 2.11 % ±2.89% ±3.85% ±5.01% streams/writable-manywrites.js len=1024 callback='yes' writev='no' sync='yes' n=2000000 5.17 % ±10.95% ±14.57% ±18.96% streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='no' n=2000000 -1.25 % ±2.19% ±2.91% ±3.79% streams/writable-manywrites.js len=1024 callback='yes' writev='yes' sync='yes' n=2000000 1.37 % ±12.89% ±17.17% ±22.38% streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='no' n=2000000 2.49 % ±4.23% ±5.63% ±7.34% streams/writable-manywrites.js len=32768 callback='no' writev='no' sync='yes' n=2000000 2.29 % ±2.70% ±3.60% ±4.70% streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='no' n=2000000 -2.53 % ±4.03% ±5.37% ±6.99% streams/writable-manywrites.js len=32768 callback='no' writev='yes' sync='yes' n=2000000 -0.04 % ±2.08% ±2.77% ±3.61% streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='no' n=2000000 -0.25 % ±6.10% ±8.15% ±10.68% streams/writable-manywrites.js len=32768 callback='yes' writev='no' sync='yes' n=2000000 -0.40 % ±2.19% ±2.91% ±3.79% streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='no' n=2000000 0.34 % ±3.59% ±4.77% ±6.21% streams/writable-manywrites.js len=32768 callback='yes' writev='yes' sync='yes' n=2000000 -2.64 % ±4.51% ±6.05% ±7.99% timers/immediate.js type='breadth1' n=5000000 1.53 % ±4.23% ±5.63% ±7.34% timers/immediate.js type='breadth4' n=5000000 -2.79 % ±3.00% ±4.00% ±5.21% timers/immediate.js type='breadth' n=5000000 -4.12 % ±4.35% ±5.79% ±7.54% timers/immediate.js type='clear' n=5000000 -0.39 % ±2.47% ±3.29% ±4.29% timers/immediate.js type='depth1' n=5000000 -0.59 % ±1.63% ±2.17% ±2.85% timers/immediate.js type='depth' n=5000000 1.18 % ±1.94% ±2.58% ±3.36% timers/set-immediate-breadth-args.js n=5000000 -0.71 % ±2.72% ±3.63% ±4.73% timers/set-immediate-breadth.js n=10000000 -1.21 % ±2.52% ±3.35% ±4.37% timers/set-immediate-depth-args.js n=5000000 0.98 % ±1.18% ±1.58% ±2.08% timers/timers-breadth-args.js n=1000000 1.44 % ±3.11% ±4.14% ±5.40% timers/timers-breadth.js n=5000000 1.30 % ±5.18% ±6.90% ±8.99% timers/timers-cancel-pooled.js n=5000000 1.40 % ±11.90% ±15.84% ±20.62% timers/timers-cancel-unpooled.js direction='end' n=1000000 -5.57 % ±19.20% ±25.56% ±33.30% timers/timers-cancel-unpooled.js direction='start' n=1000000 -5.58 % ±7.67% ±10.22% ±13.33% timers/timers-depth.js n=1000 0.00 % ±0.35% ±0.46% ±0.60% timers/timers-insert-pooled.js n=5000000 ** -5.46 % ±3.51% ±4.67% ±6.08% timers/timers-insert-unpooled.js direction='end' n=1000000 3.95 % ±4.20% ±5.58% ±7.27% timers/timers-insert-unpooled.js direction='start' n=1000000 1.66 % ±4.03% ±5.37% ±7.00% timers/timers-timeout-nexttick.js n=50000 -0.09 % ±2.59% ±3.45% ±4.50% timers/timers-timeout-nexttick.js n=5000000 -1.92 % ±7.30% ±9.72% ±12.66% timers/timers-timeout-pooled.js n=10000000 -5.24 % ±6.18% ±8.23% ±10.71% timers/timers-timeout-unpooled.js n=1000000 -2.57 % ±7.11% ±9.50% ±12.46% util/format.js type='many-%' n=100000 -4.24 % ±4.40% ±5.87% ±7.67% util/format.js type='no-replace-2' n=100000 -0.54 % ±6.21% ±8.26% ±10.75% util/format.js type='no-replace' n=100000 -0.82 % ±4.77% ±6.35% ±8.26% util/format.js type='number' n=100000 2.18 % ±6.06% ±8.06% ±10.49% util/format.js type='object-%s' n=100000 -1.33 % ±2.75% ±3.66% ±4.76% util/format.js type='object-to-string' n=100000 -2.74 % ±4.67% ±6.22% ±8.09% util/format.js type='only-objects' n=100000 -0.06 % ±2.11% ±2.81% ±3.65% util/format.js type='replace-object' n=100000 -0.88 % ±4.26% ±5.67% ±7.39% util/format.js type='string-2' n=100000 0.60 % ±4.95% ±6.59% ±8.59% util/format.js type='string' n=100000 0.48 % ±5.69% ±7.58% ±9.88% util/format.js type='unknown' n=100000 0.14 % ±6.19% ±8.23% ±10.71% util/inspect-array.js type='denseArray' len=100000 n=500 0.37 % ±6.46% ±8.60% ±11.19% util/inspect-array.js type='denseArray' len=100 n=500 -4.32 % ±4.66% ±6.20% ±8.09% util/inspect-array.js type='denseArray_showHidden' len=100000 n=500 -1.06 % ±4.28% ±5.69% ±7.41% util/inspect-array.js type='denseArray_showHidden' len=100 n=500 * 5.82 % ±5.13% ±6.82% ±8.88% util/inspect-array.js type='mixedArray' len=100000 n=500 2.77 % ±3.12% ±4.15% ±5.40% util/inspect-array.js type='mixedArray' len=100 n=500 -2.87 % ±4.72% ±6.28% ±8.18% util/inspect-array.js type='sparseArray' len=100000 n=500 0.48 % ±5.82% ±7.75% ±10.09% util/inspect-array.js type='sparseArray' len=100 n=500 3.34 % ±6.40% ±8.54% ±11.18% util/inspect.js option='colors' method='Array' n=20000 -0.53 % ±2.71% ±3.61% ±4.71% util/inspect.js option='colors' method='Date' n=20000 0.56 % ±5.61% ±7.47% ±9.74% util/inspect.js option='colors' method='Error' n=20000 * -5.09 % ±4.01% ±5.33% ±6.95% util/inspect.js option='colors' method='Number' n=20000 2.00 % ±7.57% ±10.07% ±13.11% util/inspect.js option='colors' method='Object_deep_ln' n=20000 -1.71 % ±2.62% ±3.49% ±4.55% util/inspect.js option='colors' method='Object_empty' n=20000 1.19 % ±6.21% ±8.26% ±10.76% util/inspect.js option='colors' method='Object' n=20000 2.22 % ±3.22% ±4.29% ±5.59% util/inspect.js option='colors' method='Set' n=20000 2.92 % ±5.38% ±7.16% ±9.32% util/inspect.js option='colors' method='String_boxed' n=20000 0.60 % ±4.34% ±5.78% ±7.52% util/inspect.js option='colors' method='String_complex' n=20000 ** -8.53 % ±6.20% ±8.29% ±10.86% util/inspect.js option='colors' method='String' n=20000 3.65 % ±7.04% ±9.36% ±12.19% util/inspect.js option='colors' method='TypedArray_extra' n=20000 -1.91 % ±3.39% ±4.52% ±5.90% util/inspect.js option='colors' method='TypedArray' n=20000 0.81 % ±2.51% ±3.34% ±4.36% util/inspect.js option='none' method='Array' n=20000 -0.16 % ±5.01% ±6.67% ±8.70% util/inspect.js option='none' method='Date' n=20000 2.27 % ±6.06% ±8.06% ±10.50% util/inspect.js option='none' method='Error' n=20000 * -5.54 % ±5.03% ±6.70% ±8.73% util/inspect.js option='none' method='Number' n=20000 1.47 % ±6.06% ±8.06% ±10.49% util/inspect.js option='none' method='Object_deep_ln' n=20000 0.40 % ±2.70% ±3.59% ±4.67% util/inspect.js option='none' method='Object_empty' n=20000 2.76 % ±6.60% ±8.78% ±11.43% util/inspect.js option='none' method='Object' n=20000 4.36 % ±4.80% ±6.39% ±8.32% util/inspect.js option='none' method='Set' n=20000 1.85 % ±4.76% ±6.33% ±8.24% util/inspect.js option='none' method='String_boxed' n=20000 -3.10 % ±4.72% ±6.28% ±8.19% util/inspect.js option='none' method='String_complex' n=20000 2.24 % ±8.19% ±10.91% ±14.23% util/inspect.js option='none' method='String' n=20000 -0.69 % ±7.29% ±9.70% ±12.63% util/inspect.js option='none' method='TypedArray_extra' n=20000 -2.11 % ±5.31% ±7.08% ±9.26% util/inspect.js option='none' method='TypedArray' n=20000 -2.72 % ±5.18% ±6.93% ±9.09% util/inspect.js option='showHidden' method='Array' n=20000 -1.93 % ±2.27% ±3.04% ±4.00% util/inspect.js option='showHidden' method='Date' n=20000 -4.95 % ±5.18% ±6.91% ±9.04% util/inspect.js option='showHidden' method='Error' n=20000 -0.70 % ±4.48% ±5.96% ±7.77% util/inspect.js option='showHidden' method='Number' n=20000 0.10 % ±4.87% ±6.48% ±8.44% util/inspect.js option='showHidden' method='Object_deep_ln' n=20000 2.68 % ±3.40% ±4.53% ±5.89% util/inspect.js option='showHidden' method='Object_empty' n=20000 4.05 % ±7.01% ±9.33% ±12.15% util/inspect.js option='showHidden' method='Object' n=20000 * 5.78 % ±5.34% ±7.10% ±9.24% util/inspect.js option='showHidden' method='Set' n=20000 * 5.91 % ±5.40% ±7.19% ±9.35% util/inspect.js option='showHidden' method='String_boxed' n=20000 2.28 % ±4.96% ±6.60% ±8.60% util/inspect.js option='showHidden' method='String_complex' n=20000 2.23 % ±8.04% ±10.72% ±14.01% util/inspect.js option='showHidden' method='String' n=20000 -0.11 % ±5.12% ±6.82% ±8.89% util/inspect.js option='showHidden' method='TypedArray_extra' n=20000 2.51 % ±3.74% ±4.99% ±6.53% util/inspect.js option='showHidden' method='TypedArray' n=20000 0.37 % ±3.21% ±4.27% ±5.56% util/inspect-proxy.js isProxy=0 showProxy=0 n=100000 -0.80 % ±2.32% ±3.10% ±4.06% util/inspect-proxy.js isProxy=0 showProxy=1 n=100000 0.74 % ±2.35% ±3.13% ±4.08% util/inspect-proxy.js isProxy=1 showProxy=0 n=100000 -1.82 % ±2.14% ±2.85% ±3.71% util/inspect-proxy.js isProxy=1 showProxy=1 n=100000 * -4.03 % ±3.21% ±4.29% ±5.63% util/normalize-encoding.js n=100000 input='' -1.90 % ±6.47% ±8.63% ±11.26% util/normalize-encoding.js n=100000 input='base64' -1.25 % ±5.61% ±7.46% ±9.71% util/normalize-encoding.js n=100000 input='BASE64' 0.70 % ±6.43% ±8.57% ±11.16% util/normalize-encoding.js n=100000 input='binary' -2.88 % ±5.36% ±7.14% ±9.31% util/normalize-encoding.js n=100000 input='BINARY' 1.34 % ±5.43% ±7.23% ±9.41% util/normalize-encoding.js n=100000 input='foo' 1.28 % ±6.62% ±8.80% ±11.46% util/normalize-encoding.js n=100000 input='group_common' -5.24 % ±5.79% ±7.71% ±10.04% util/normalize-encoding.js n=100000 input='group_misc' -0.82 % ±6.67% ±8.87% ±11.55% util/normalize-encoding.js n=100000 input='group_uncommon' -2.63 % ±6.15% ±8.20% ±10.71% util/normalize-encoding.js n=100000 input='group_upper' 2.95 % ±5.63% ±7.52% ±9.86% util/normalize-encoding.js n=100000 input='hex' 1.71 % ±6.83% ±9.09% ±11.83% util/normalize-encoding.js n=100000 input='HEX' 3.94 % ±6.33% ±8.44% ±11.02% util/normalize-encoding.js n=100000 input='latin1' -0.23 % ±5.32% ±7.07% ±9.21% util/normalize-encoding.js n=100000 input='ucs2' 2.34 % ±5.40% ±7.21% ±9.42% util/normalize-encoding.js n=100000 input='UCS2' 2.98 % ±6.82% ±9.08% ±11.85% util/normalize-encoding.js n=100000 input='undefined' -0.57 % ±6.42% ±8.55% ±11.13% util/normalize-encoding.js n=100000 input='utf16le' 2.19 % ±7.92% ±10.54% ±13.72% util/normalize-encoding.js n=100000 input='UTF16LE' -2.29 % ±5.37% ±7.15% ±9.30% util/normalize-encoding.js n=100000 input='utf-8' 4.94 % ±5.72% ±7.63% ±9.95% util/normalize-encoding.js n=100000 input='utf8' 2.16 % ±7.27% ±9.68% ±12.63% util/normalize-encoding.js n=100000 input='Utf8' 4.23 % ±7.08% ±9.45% ±12.38% util/normalize-encoding.js n=100000 input='UTF-8' 4.87 % ±6.92% ±9.20% ±11.98% util/normalize-encoding.js n=100000 input='UTF8' -3.44 % ±6.77% ±9.02% ±11.75% util/priority-queue.js n=100000 -3.23 % ±4.54% ±6.05% ±7.89% util/splice-one.js size=100 pos='end' n=100000 0.86 % ±6.88% ±9.16% ±11.93% util/splice-one.js size=100 pos='middle' n=100000 2.38 % ±5.65% ±7.52% ±9.78% util/splice-one.js size=100 pos='start' n=100000 -0.13 % ±4.62% ±6.15% ±8.01% util/splice-one.js size=10 pos='end' n=100000 -1.62 % ±4.37% ±5.81% ±7.57% util/splice-one.js size=10 pos='middle' n=100000 -1.07 % ±4.84% ±6.44% ±8.39% util/splice-one.js size=10 pos='start' n=100000 1.47 % ±3.83% ±5.11% ±6.67% util/splice-one.js size=500 pos='end' n=100000 3.71 % ±6.02% ±8.01% ±10.43% util/splice-one.js size=500 pos='middle' n=100000 -2.58 % ±2.99% ±3.99% ±5.21% util/splice-one.js size=500 pos='start' n=100000 1.50 % ±2.98% ±3.97% ±5.17% util/to-usv-string.js size=100 n=100000 -0.73 % ±2.12% ±2.82% ±3.68% util/to-usv-string.js size=10 n=100000 1.23 % ±4.86% ±6.47% ±8.44% util/to-usv-string.js size=500 n=100000 0.53 % ±2.65% ±3.54% ±4.63% util/type-check.js n=100000 argument='false-object' version='js' type='ArrayBufferView' 3.62 % ±6.87% ±9.14% ±11.89% util/type-check.js n=100000 argument='false-object' version='js' type='TypedArray' 0.40 % ±5.86% ±7.81% ±10.17% util/type-check.js n=100000 argument='false-object' version='js' type='Uint8Array' -0.41 % ±5.91% ±7.86% ±10.23% util/type-check.js n=100000 argument='false-object' version='native' type='ArrayBufferView' -2.05 % ±6.77% ±9.01% ±11.73% util/type-check.js n=100000 argument='false-object' version='native' type='TypedArray' -0.48 % ±4.96% ±6.61% ±8.61% util/type-check.js n=100000 argument='false-object' version='native' type='Uint8Array' 2.77 % ±6.38% ±8.50% ±11.11% util/type-check.js n=100000 argument='false-primitive' version='js' type='ArrayBufferView' -4.74 % ±5.49% ±7.31% ±9.51% util/type-check.js n=100000 argument='false-primitive' version='js' type='TypedArray' -1.22 % ±5.54% ±7.38% ±9.62% util/type-check.js n=100000 argument='false-primitive' version='js' type='Uint8Array' 1.36 % ±10.09% ±13.50% ±17.73% util/type-check.js n=100000 argument='false-primitive' version='native' type='ArrayBufferView' 5.30 % ±6.70% ±8.92% ±11.65% util/type-check.js n=100000 argument='false-primitive' version='native' type='TypedArray' 0.48 % ±6.44% ±8.57% ±11.16% util/type-check.js n=100000 argument='false-primitive' version='native' type='Uint8Array' 2.56 % ±5.73% ±7.63% ±9.93% util/type-check.js n=100000 argument='true' version='js' type='ArrayBufferView' -2.88 % ±6.00% ±7.99% ±10.40% util/type-check.js n=100000 argument='true' version='js' type='TypedArray' -2.34 % ±5.90% ±7.87% ±10.29% util/type-check.js n=100000 argument='true' version='js' type='Uint8Array' -0.18 % ±6.50% ±8.66% ±11.29% util/type-check.js n=100000 argument='true' version='native' type='ArrayBufferView' * -7.04 % ±5.63% ±7.51% ±9.84% util/type-check.js n=100000 argument='true' version='native' type='TypedArray' -0.33 % ±5.37% ±7.15% ±9.31% util/type-check.js n=100000 argument='true' version='native' type='Uint8Array' 2.82 % ±7.42% ±9.88% ±12.87% Be aware that when doing many comparisons the risk of a false-positive result increases. In this case, there are 841 comparisons, you can thus expect the following amount of false-positive results: 42.05 false positives, when considering a 5% risk acceptance (*, **, ***), 8.41 false positives, when considering a 1% risk acceptance (**, ***), 0.84 false positives, when considering a 0.1% risk acceptance (***) |
Sorry, something went wrong.
Amazing progress, I might have missed it. Have you got a link? |
Sorry, something went wrong.
Not 100% sure if these are exhaustive or there were follow-ups: (for my tests I ran destructuring, not iterating) Edit: according to https://bugs.chromium.org/p/chromium/issues/detail?id=980227, there still are issues with some particular operations. I tried to benchmark their 1000-element array in Chromium and got this (higher is better):
But these operations shouldn't be applicable to this partucular empty object. |
Sorry, something went wrong.
|
CITGM: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/2939/ Just in case of some sort of really elusive errors. |
Sorry, something went wrong.
Sorry, something went wrong.
PR-URL: nodejs#43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: nodejs#43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: nodejs#43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: nodejs#43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: nodejs#43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: nodejs#43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: nodejs#43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #43159 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Problem
There are lots of places in core where we have to pass an optional "pre-ES6 map"-style object with optional properties.
To avoid verbose boilerplate code or overusing of optional chaining, and to allow destructuring, we need a fallback value of {}, thus creating a throwaway object:
It is also highly affected by prototype tampering, e.g.
So we have to prefer Object.create(null), which is slower and still creates a throwaway object on every usage.
Solution
A single immutable object that guarantees any property to be undefined.