Mark,

On 7/23/24 13:13, Mark Thomas wrote:
Prompted by some folks at $dayjob, I have been looking at the performance of Tomcat's HTTP/2 implementation using [1]

Initially, I was seeing ~79k req/s.

Restoring lazy init for the StreamInputBuffer increased that to ~106k req/s.

O_O

Moving the HttpParser from Processor to Protocol increased that to ~108k req/s.

Now I am looking at recycling and reusing the coyote request and response. That increases throughput to 124k req/s.

This information would be good to put (with a datestamp and environmental details) into the documentation for discardFacades and/or similar capabilities.

In Bratislava, we idly speculated that "throwing those objects away should not affect performance much and improve security" but if it really is a 15% speed improvement, it might be really critical for some applications.

Given the significant performance increase I am considering the following:
- switching HTTP/2 to recycle and reuse coyote request and response
   objects by default

Note that we just changed that default in the other direction for HTTP/1.1. I think we should probably be consistent.

- providing an option to restore the current behaviour of creating a new
   coyote request and response object for every HTTP/2 stream

+1 but with a different default.

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to