aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/crypto.mjs
blob: e8e6f2f8a96532b20bfb9700944e4989420f721d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// so it can run in environments without node module resolution
import { bench, run } from "../node_modules/mitata/src/cli.mjs";

var crypto = globalThis.crypto;

if (!crypto) {
  crypto = await import("node:crypto");
}

var foo = new Uint8Array(65536);
bench("crypto.getRandomValues(65536)", () => {
  crypto.getRandomValues(foo);
});

var small = new Uint8Array(32);
bench("crypto.getRandomValues(32)", () => {
  crypto.getRandomValues(small);
});

bench("crypto.randomUUID()", () => {
  // node uses a rope string for each hex byte so any subsequent operation after creating it is slow
  return crypto.randomUUID()[2];
});

bench("crypto.randomInt()", () => {
  return crypto.randomInt();
});

await run();