mirror of
https://github.com/denoland/deno.git
synced 2025-03-04 01:44:26 -05:00
![]() results on my machine (Macbook pro w/ M3 Max) canary (hello world): ``` ❯ oha -c 125 -n 4000000 --no-tui --disable-compression http://localhost:8000 Summary: Success rate: 100.00% Total: 31.0160 secs Slowest: 0.0083 secs Fastest: 0.0005 secs Average: 0.0010 secs Requests/sec: 128965.6454 Total data: 49.59 MiB Size/request: 13 B Size/sec: 1.60 MiB ``` this PR (hello world): ``` ❯ oha -c 125 -n 4000000 --no-tui --disable-compression http://localhost:8000 Summary: Success rate: 100.00% Total: 28.4050 secs Slowest: 0.0085 secs Fastest: 0.0001 secs Average: 0.0009 secs Requests/sec: 140820.2060 Total data: 49.59 MiB Size/request: 13 B Size/sec: 1.75 MiB ``` --- Two changes here: - use `opt-level` 3 for some of hyper's deps, since profile overrides are not transitive - As noted in the [cargo reference](https://doc.rust-lang.org/cargo/reference/profiles.html#overrides-and-generics) generic functions _may_ be optimized at the opt-level of the _instantiating_ crate, rather than the defining crate. So currently it's possible that some of the functions in `deno_http` are being compiled at a lower optimization level. This PR ensures the generics are instantiated in `deno_http`, which theoretically should guarantee they actually use opt-level 3. To allow embedders to still provide a custom property extractor, I put this behind a feature flag. |
||
---|---|---|
.. | ||
broadcast_channel | ||
cache | ||
canvas | ||
console | ||
cron | ||
crypto | ||
fetch | ||
ffi | ||
fs | ||
http | ||
io | ||
kv | ||
napi | ||
net | ||
node | ||
os | ||
process | ||
telemetry | ||
tls | ||
url | ||
web | ||
webgpu | ||
webidl | ||
websocket | ||
webstorage |