aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbench/snippets/bun.lockbbin0 -> 1581 bytes
-rw-r--r--bench/snippets/emitter.js120
-rw-r--r--bench/snippets/package.json6
3 files changed, 71 insertions, 55 deletions
diff --git a/bench/snippets/bun.lockb b/bench/snippets/bun.lockb
new file mode 100755
index 000000000..d229240b3
--- /dev/null
+++ b/bench/snippets/bun.lockb
Binary files differ
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"
+ }
+}