-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Description
While the base HTTP2 server implementation for Netius is developed, a proper support for priorities is still not developed leaving the output channel "unprotected" against large unimportant chunks of data that fill the space of the more important HTML, Javascripts, etc chunks.
Current HTTP2 performance under real browser scenarios is limited by the lack if priority support and the total loading times are often larger than the HTTP1.1 equivalents.
Notes
The delaying of the dependent streams should be performed at two different levels:
- CPU/RAM, meaning that the
on_datashould not be triggered while the stream is not ready - Bandwidth, meaning that no bytes are sent back to the client while the parent streams are not completed or blocked, a delay operation is done on all of the data frames of the stream until the parent frame unblock its task, this may be done by using part of the
available_stream/delay_frameimplementation
Note that the most important part point is the one about blocking the bandwidth, as that's the most limited resource
Benchmarking
The page loading performance of the Netius HTTP2 server should be equivalent to the one offered by other HTTP2 servers like nghttp2 for that proper comparison must be created.