1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-21 23:04:45 -05:00
denoland-deno/ext
Marcos Casagrande e1aa514179
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-18 14:44:57 +02:00
..
broadcast_channel chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
cache chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
console chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
crypto chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
fetch fix: release ReadeableStream in fetch (#17365) 2023-08-16 14:02:15 +02:00
ffi chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
fs chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
http feat(ext/web): resourceForReadableStream (#20180) 2023-08-17 07:52:37 -06:00
io chore: deno_core -> 0.201.0 (#20135) 2023-08-12 19:04:45 +00:00
kv feat(ext/kv): key expiration (#20091) 2023-08-18 17:34:16 +08:00
napi chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
net fix(ext/net): implement a graceful error on an invalid SSL certificate (#20157) 2023-08-15 00:11:12 +00:00
node fix(node/http): emit error when addr in use (#20200) 2023-08-18 13:48:18 +02:00
tls chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
url perf(ext/urlpattern): optimize URLPattern.exec (#20170) 2023-08-16 12:58:03 +02:00
web perf(ext/event): replace ReflectHas with object lookup (#20190) 2023-08-18 14:44:57 +02:00
webidl chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
websocket chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00
webstorage chore: forward v1.36.1 to main (#20119) 2023-08-10 16:44:41 +03:00