1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-27 17:49:08 -05:00
denoland-deno/ext
Marcos Casagrande 987c3d6aa8 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
2023-08-21 18:23:27 +05:30
..
broadcast_channel 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
cache 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
console 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
crypto 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
fetch fix: release ReadeableStream in fetch (#17365) 2023-08-21 18:23:27 +05:30
ffi 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
fs 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
http feat(ext/web): resourceForReadableStream (#20180) 2023-08-21 18:23:27 +05:30
io chore: deno_core -> 0.201.0 (#20135) 2023-08-21 18:23:27 +05:30
kv feat(ext/kv): key expiration (#20091) 2023-08-21 18:23:27 +05:30
napi 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
net fix(ext/net): implement a graceful error on an invalid SSL certificate (#20157) 2023-08-21 18:23:27 +05:30
node fix(node/http): emit error when addr in use (#20200) 2023-08-21 18:23:27 +05:30
tls 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
url perf(ext/urlpattern): optimize URLPattern.exec (#20170) 2023-08-21 18:23:27 +05:30
web perf(ext/event): replace ReflectHas with object lookup (#20190) 2023-08-21 18:23:27 +05:30
webidl 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
websocket 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30
webstorage 1.36.1 (#20221) 2023-08-21 18:08:38 +05:30