1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-01 09:24:20 -04:00
denoland-deno/ext
Marcos Casagrande ac5fcf626a
perf(ext/web): add op_encode_binary_string (#16352)
Add a new op to use in `reader.readAsBinaryString(blob)`.

```
File API binary string: 400b    35.12 µs/iter    (21.93 µs … 3.27 ms)  31.87 µs 131.95 µs 217.63 µs
File API binary string: 4kb     46.49 µs/iter    (29.36 µs … 4.42 ms)   42.5 µs 122.48 µs  155.1 µs
File API binary string: 2.2mb    4.17 ms/iter     (1.75 ms … 8.54 ms)   5.48 ms   7.39 ms   8.54 ms
```

**main**

```
benchmark                          time (avg)             (min … max)       p75       p99      p995
--------------------------------------------------------------------- -----------------------------
File API binary string: 400b    56.17 µs/iter  (43.09 µs … 784.52 µs)   49.6 µs 177.18 µs 241.23 µs
File API binary string: 4kb     277.2 µs/iter   (240.29 µs … 1.84 ms) 269.87 µs 649.79 µs 774.46 µs
File API binary string: 2.2mb  180.03 ms/iter (173.32 ms … 194.35 ms) 182.54 ms 194.35 ms 194.35 ms
```

It can also handle bigger files, when encoding a 200mb file, main
crashes with OOM

```
<--- Last few GCs --->

[132677:0x560504676550]     5012 ms: Scavenge 417.3 (434.6) -> 401.8 (434.6) MB, 0.1 / 0.0 ms  (average mu = 0.824, current mu = 0.825) allocation failure; 
[132677:0x560504676550]     5038 ms: Scavenge 417.3 (434.6) -> 401.8 (434.6) MB, 0.1 / 0.0 ms  (average mu = 0.824, current mu = 0.825) allocation failure; 
[132677:0x560504676550]     5064 ms: Scavenge 417.3 (434.6) -> 401.8 (434.6) MB, 0.1 / 0.0 ms  (average mu = 0.824, current mu = 0.825) allocation failure;
```
2022-10-24 20:27:22 +02:00
..
broadcast_channel experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
cache chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00
console chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00
crypto chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00
fetch fix(ext/fetch): fix size_hint on response body resource (#16254) 2022-10-24 13:26:41 +02:00
ffi chore: upgrade rusty_v8 to 0.54.0 (#16368) 2022-10-20 21:01:49 +02:00
flash experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
http experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
napi chore: upgrade rusty_v8 to 0.54.0 (#16368) 2022-10-20 21:01:49 +02:00
net refactor(ext/net): clean up variadic network ops (#16392) 2022-10-24 14:55:39 +02:00
node feat(unstable/npm): initial type checking of npm specifiers (#16332) 2022-10-21 15:20:18 +00:00
tls chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00
url chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00
web perf(ext/web): add op_encode_binary_string (#16352) 2022-10-24 20:27:22 +02:00
webgpu chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00
webidl chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00
websocket experiment(ext/web): Don't expose event classes during the bootstrap phase (#16213) 2022-10-24 16:14:17 +02:00
webstorage chore: forward v1.26.2 to main (#16331) 2022-10-17 23:11:16 +02:00