mirror of
https://github.com/denoland/deno.git
synced 2025-03-12 07:07:43 -04: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. |
||
---|---|---|
.. | ||
benches | ||
00_serve.ts | ||
01_http.js | ||
02_websocket.ts | ||
Cargo.toml | ||
compressible.rs | ||
fly_accept_encoding.rs | ||
http_next.rs | ||
lib.rs | ||
network_buffered_stream.rs | ||
reader_stream.rs | ||
README.md | ||
request_body.rs | ||
request_properties.rs | ||
response_body.rs | ||
service.rs | ||
websocket_upgrade.rs |