aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/emitter.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-21 23:53:56 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-08-22 00:04:27 -0700
commitb95e6602c335162ec8e93cc9b319f8b5319edc9a (patch)
treeba233dc319e857dd48ff99d783e61a867f519840 /bench/snippets/emitter.js
parent68973722588389c494ff3f588ce79ef1eb5dd859 (diff)
downloadbun-b95e6602c335162ec8e93cc9b319f8b5319edc9a.tar.gz
bun-b95e6602c335162ec8e93cc9b319f8b5319edc9a.tar.zst
bun-b95e6602c335162ec8e93cc9b319f8b5319edc9a.zip
Add a snippet for benchmarking EventEmitter vs EventTarget
Diffstat (limited to 'bench/snippets/emitter.js')
-rw-r--r--bench/snippets/emitter.js49
1 files changed, 49 insertions, 0 deletions
diff --git a/bench/snippets/emitter.js b/bench/snippets/emitter.js
new file mode 100644
index 000000000..4b6b8b216
--- /dev/null
+++ b/bench/snippets/emitter.js
@@ -0,0 +1,49 @@
+const EventEmitter = require("events").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++;
+ },
+ });
+});
+
+bench("EventEmitter.on x 10_000 (handler)", () => {
+ var cb = () => {
+ event.preventDefault();
+ };
+ emitter.on("hey", cb);
+ for (let i = 0; i < 10_000; i++)
+ emitter.emit("hey", {
+ preventDefault() {
+ id++;
+ },
+ });
+ emitter.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();