diff options
author | Marcos Casagrande <marcoscvp90@gmail.com> | 2023-09-17 17:54:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-17 15:54:40 +0000 |
commit | 4960b6659c9cf305ae3578957e4d45419626c9b9 (patch) | |
tree | 9d8603dc6b136d0eca63d9ef92db7e1d5fb9528e /cli/build.rs | |
parent | fa18878f54c91c8335dd0abe911b1ee3d15c5607 (diff) |
perf(ext/streams): optimize async iterator (#20541)
This PR optimizes `ReadableStream` async iterator
### Benchmarks
```js
Deno.bench("Stream - iterator", async () => {
const stream = new ReadableStream({
start(controller) {
controller.enqueue(new Uint8Array([97]));
controller.enqueue(new Uint8Array([97]));
controller.close();
},
});
for await (const chunk of stream) {}
});
```
**main**
`2 chunks`
```
cpu: 13th Gen Intel(R) Core(TM) i9-13900H
runtime: deno 1.36.4 (x86_64-unknown-linux-gnu)
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------- -----------------------------
Stream - iterator 12.45 µs/iter 80,295.5 (10.5 µs … 281.12 µs) 12.13 µs 26.71 µs 33.63 µs
```
`20 chunks`
```
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------- -----------------------------
Stream - iterator 32.99 µs/iter 30,312.2 (28.13 µs … 1.21 ms) 31.8 µs 81.82 µs 179.93 µs
```
---
**this PR**
`2 chunks`
```
cpu: 13th Gen Intel(R) Core(TM) i9-13900H
runtime: deno 1.36.4 (x86_64-unknown-linux-gnu)
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------- -----------------------------
Stream - iterator 9.37 µs/iter 106,700.8 (8.35 µs … 730.71 µs) 9.15 µs 13.12 µs 18.17 µs
```
`20 chunks`
```
benchmark time (avg) iter/s (min … max) p75 p99 p995
----------------------------------------------------------------------- -----------------------------
Stream - iterator 16.59 µs/iter 60,270.0 (12.08 µs … 1.37 ms) 15.06 µs 83.03 µs 123.52 µs
```
Diffstat (limited to 'cli/build.rs')
0 files changed, 0 insertions, 0 deletions