diff options
author | 2023-01-22 19:11:04 -0800 | |
---|---|---|
committer | 2023-01-22 19:11:04 -0800 | |
commit | c6b941d803cc5a09fafee8ad7c1c5fb29b3c4847 (patch) | |
tree | 684a46c60ca3305aa3b7cc7fd8e1810259f3f1f6 /bench/snippets | |
parent | 349224869751c9d74540d5de75bf0681c69dd45d (diff) | |
download | bun-c6b941d803cc5a09fafee8ad7c1c5fb29b3c4847.tar.gz bun-c6b941d803cc5a09fafee8ad7c1c5fb29b3c4847.tar.zst bun-c6b941d803cc5a09fafee8ad7c1c5fb29b3c4847.zip |
Add some more emitters to the benchmark
Diffstat (limited to 'bench/snippets')
-rwxr-xr-x | bench/snippets/bun.lockb | bin | 0 -> 1581 bytes | |||
-rw-r--r-- | bench/snippets/emitter.js | 120 | ||||
-rw-r--r-- | bench/snippets/package.json | 6 |
3 files changed, 71 insertions, 55 deletions
diff --git a/bench/snippets/bun.lockb b/bench/snippets/bun.lockb Binary files differnew file mode 100755 index 000000000..d229240b3 --- /dev/null +++ b/bench/snippets/bun.lockb diff --git a/bench/snippets/emitter.js b/bench/snippets/emitter.js index 0dacf18ac..64209a176 100644 --- a/bench/snippets/emitter.js +++ b/bench/snippets/emitter.js @@ -1,71 +1,81 @@ -const EventEmitter = require("events").EventEmitter; +const EventEmitterNative = require("events").EventEmitter; +const TypedEmitter = require("tiny-typed-emitter").TypedEmitter; +const EventEmitter3 = require("eventemitter3").EventEmitter; import { bench, run } from "mitata"; - -const emitter = new EventEmitter(); const event = new Event("hello"); -emitter.on("hello", (event) => { - event.preventDefault(); -}); - var id = 0; -bench("EventEmitter.emit", () => { - emitter.emit("hello", { - preventDefault() { - id++; - }, - }); -}); - -var monkey = Object.assign({}, EventEmitter.prototype); -monkey.on("hello", (event) => { - event.preventDefault(); -}); +for (let [EventEmitter, className] of [ + [EventEmitterNative, "EventEmitter"], + [TypedEmitter, "TypedEmitter"], + [EventEmitter3, "EventEmitter3"], +]) { + const emitter = new EventEmitter(); -bench("[monkey] EventEmitter.emit", () => { - var called = false; - monkey.emit("hello", { - preventDefault() { - id++; - called = true; - }, + emitter.on("hello", (event) => { + event.preventDefault(); }); - if (!called) { - throw new Error("monkey failed"); - } -}); - -bench("EventEmitter.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", { + bench(`${className}.emit`, () => { + emitter.emit("hello", { preventDefault() { id++; - called = true; }, }); - emitter.off("hey", cb); + }); - if (!called) throw new Error("not called"); -}); + 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); -bench("[monkey] EventEmitter.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++; - }, + if (!called) throw new Error("not called"); + }); + + if (EventEmitter !== EventEmitter3) { + var monkey = Object.assign({}, EventEmitter.prototype); + monkey.on("hello", (event) => { + event.preventDefault(); }); - monkey.off("hey", cb); -}); + + 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) => {}); diff --git a/bench/snippets/package.json b/bench/snippets/package.json new file mode 100644 index 000000000..b66157182 --- /dev/null +++ b/bench/snippets/package.json @@ -0,0 +1,6 @@ +{ + "dependencies": { + "eventemitter3": "^5.0.0", + "tiny-typed-emitter": "latest" + } +} |