diff options
author | Marcos Casagrande <marcoscvp90@gmail.com> | 2023-08-18 14:44:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-18 14:44:57 +0200 |
commit | e1aa51417967373acaf007e46b852169f468b627 (patch) | |
tree | 0888077ef182e8b58f39ed2cef6c58dcea376b11 /ext/websocket/01_websocket.js | |
parent | a48ec1d5637398fd4e023bdbb6cc00399bf47631 (diff) |
perf(ext/event): replace ReflectHas with object lookup (#20190)
This PR optimizes event dispatch by replacing `ReflectHas` with object
lookup. I also made `isSlottable` return `false` since AFAIK there
aren't any slottables nodes in Deno
**This PR**
```
cpu: 13th Gen Intel(R) Core(TM) i9-13900H
runtime: deno 1.36.1 (x86_64-unknown-linux-gnu)
benchmark time (avg) iter/s (min … max) p75 p99 p995
--------------------------------------------------------------------- -----------------------------
event dispatch 80.46 ns/iter 12,428,739.4 (73.84 ns … 120.07 ns) 81.82 ns 86.34 ns 91.18 ns
```
**main**
```
cpu: 13th Gen Intel(R) Core(TM) i9-13900H
runtime: deno 1.36.1 (x86_64-unknown-linux-gnu)
benchmark time (avg) iter/s (min … max) p75 p99 p995
--------------------------------------------------------------------- -----------------------------
event dispatch 102.66 ns/iter 9,741,319.6 (96.66 ns … 132.88 ns) 104.18 ns 114.58 ns 118.45 ns
```
```js
const tg = new EventTarget();
const ev = new Event("foo");
const listener = () => {};
tg.addEventListener("foo", listener);
Deno.bench("event dispatch ", () => {
tg.dispatchEvent(ev);
});
```
towards https://github.com/denoland/deno/issues/20167
Diffstat (limited to 'ext/websocket/01_websocket.js')
0 files changed, 0 insertions, 0 deletions