diff options
Diffstat (limited to 'bench/snippets')
-rwxr-xr-x | bench/snippets/bun.lockb | bin | 1477 -> 0 bytes | |||
-rw-r--r-- | bench/snippets/crypto-2190.mjs | 29 | ||||
-rw-r--r-- | bench/snippets/crypto-stream.mjs | 26 | ||||
-rw-r--r-- | bench/snippets/emitter.mjs | 101 | ||||
-rw-r--r-- | bench/snippets/package.json | 7 |
5 files changed, 55 insertions, 108 deletions
diff --git a/bench/snippets/bun.lockb b/bench/snippets/bun.lockb Binary files differdeleted file mode 100755 index 3acb6d075..000000000 --- a/bench/snippets/bun.lockb +++ /dev/null diff --git a/bench/snippets/crypto-2190.mjs b/bench/snippets/crypto-2190.mjs new file mode 100644 index 000000000..dab54f1fd --- /dev/null +++ b/bench/snippets/crypto-2190.mjs @@ -0,0 +1,29 @@ +// https://github.com/oven-sh/bun/issues/2190 +import { bench, run } from "mitata"; +import { createHash } from "node:crypto"; + +const data = + "Delightful remarkably mr on announcing themselves entreaties favourable. About to in so terms voice at. Equal an would is found seems of. The particular friendship one sufficient terminated frequently themselves. It more shed went up is roof if loud case. Delay music in lived noise an. Beyond genius really enough passed is up."; + +const scenarios = [ + { alg: "md5", digest: "hex" }, + { alg: "md5", digest: "base64" }, + { alg: "sha1", digest: "hex" }, + { alg: "sha1", digest: "base64" }, + { alg: "sha256", digest: "hex" }, + { alg: "sha256", digest: "base64" }, +]; + +for (const { alg, digest } of scenarios) { + bench(`${alg}-${digest}`, () => { + createHash(alg).update(data).digest(digest); + }); + + if ("Bun" in globalThis) { + bench(`${alg}-${digest} (Bun.CryptoHasher)`, () => { + new Bun.CryptoHasher(alg).update(data).digest(digest); + }); + } +} + +run(); diff --git a/bench/snippets/crypto-stream.mjs b/bench/snippets/crypto-stream.mjs new file mode 100644 index 000000000..3560563d9 --- /dev/null +++ b/bench/snippets/crypto-stream.mjs @@ -0,0 +1,26 @@ +// https://github.com/oven-sh/bun/issues/2190 +import { bench, run } from "mitata"; +import { createHash } from "node:crypto"; + +const data = + "Delightful remarkably mr on announcing themselves entreaties favourable. About to in so terms voice at. Equal an would is found seems of. The particular friendship one sufficient terminated frequently themselves. It more shed went up is roof if loud case. Delay music in lived noise an. Beyond genius really enough passed is up."; + +const scenarios = [ + { alg: "md5", digest: "hex" }, + { alg: "md5", digest: "base64" }, + { alg: "sha1", digest: "hex" }, + { alg: "sha1", digest: "base64" }, + { alg: "sha256", digest: "hex" }, + { alg: "sha256", digest: "base64" }, +]; + +for (const { alg, digest } of scenarios) { + bench(`${alg}-${digest}`, () => { + const hasher = createHash(alg); + hasher.write(data); + hasher.end(); + hasher.read(); + }); +} + +run(); diff --git a/bench/snippets/emitter.mjs b/bench/snippets/emitter.mjs deleted file mode 100644 index f708cf77a..000000000 --- a/bench/snippets/emitter.mjs +++ /dev/null @@ -1,101 +0,0 @@ -// **so this file can run in node** -import { createRequire } from "node:module"; -const require = createRequire(import.meta.url); -// -- - -const EventEmitterNative = require("node:events").EventEmitter; -const TypedEmitter = require("tiny-typed-emitter").TypedEmitter; -const EventEmitter3 = require("eventemitter3").EventEmitter; -import { bench, run } from "../../node_modules/mitata/src/cli.mjs"; -const event = new Event("hello"); -var id = 0; -for (let [EventEmitter, className] of [ - [EventEmitterNative, "EventEmitter"], - [TypedEmitter, "TypedEmitter"], - [EventEmitter3, "EventEmitter3"], -]) { - const emitter = new EventEmitter(); - - emitter.on("hello", event => { - event.preventDefault(); - }); - - bench(`${className}.emit`, () => { - emitter.emit("hello", { - preventDefault() { - id++; - }, - }); - }); - - bench(`${className}.on x 10_000 (handler)`, () => { - var cb = event => { - event.preventDefault(); - }; - emitter.on("hey", cb); - var called = false; - for (let i = 0; i < 10_000; i++) - emitter.emit("hey", { - preventDefault() { - id++; - called = true; - }, - }); - emitter.off("hey", cb); - - if (!called) throw new Error("not called"); - }); - - if (EventEmitter !== EventEmitter3) { - var monkey = Object.assign({}, EventEmitter.prototype); - monkey.on("hello", event => { - event.preventDefault(); - }); - - bench(`[monkey] ${className}.emit`, () => { - var called = false; - monkey.emit("hello", { - preventDefault() { - id++; - called = true; - }, - }); - - if (!called) { - throw new Error("monkey failed"); - } - }); - - bench(`[monkey] ${className}.on x 10_000 (handler)`, () => { - var cb = () => { - event.preventDefault(); - }; - monkey.on("hey", cb); - for (let i = 0; i < 10_000; i++) - monkey.emit("hey", { - preventDefault() { - id++; - }, - }); - monkey.off("hey", cb); - }); - } -} - -var target = new EventTarget(); -target.addEventListener("hello", event => {}); -bench("EventTarget.dispatch", () => { - target.dispatchEvent(event); -}); - -var hey = new Event("hey"); - -bench("EventTarget.on x 10_000 (handler)", () => { - var handler = event => {}; - target.addEventListener("hey", handler); - - for (let i = 0; i < 10_000; i++) target.dispatchEvent(hey); - target.removeEventListener("hey", handler); -}); - -await run(); diff --git a/bench/snippets/package.json b/bench/snippets/package.json deleted file mode 100644 index 6244001a8..000000000 --- a/bench/snippets/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "dependencies": { - "eventemitter3": "^5.0.0", - "tiny-typed-emitter": "latest" - }, - "prettier": "../../.prettierrc.cjs" -} |