Re: [go-nuts] Go http/2 implementation is x5 less per performant than http/1.1

2021-11-09 Thread robert engels
Well, I figured out a way to do it simply. The CL is here https://go-review.googlesource.com/c/net/+/362834 The frame size will be used for all connections using that transport, so it is probably better to create a transport specifically for

Re: [go-nuts] Go http/2 implementation is x5 less per performant than http/1.1

2021-11-09 Thread Robert Engels
To be clear, I have no plans to submit a Cl to improve this at this time. It would require some api changes to implement properly. > On Nov 9, 2021, at 12:19 PM, Kirth Gersen wrote: > > Great ! > > > I made some local mods to the net library, increasing the frame size to > > 256k, and the

Re: [go-nuts] Go http/2 implementation is x5 less per performant than http/1.1

2021-11-09 Thread Kirth Gersen
Great ! > *I made some local mods to the net library, increasing the frame size to 256k, and the http2 performance went from 8Gbps to 38Gbps.* That is already enormous for us. thx for finding this. 4 -> Indeed a lot of WINDOW_UPDATE messages are visible when using GODEBUG=http2debug=1 On

Re: [go-nuts] Go http/2 implementation is x5 less per performant than http/1.1

2021-11-09 Thread robert engels
I did a review of the codebase. Http2 is a multiplexed protocol with independent streams. The Go implementation uses a common reader thread/routine to read all of the connection content, and then demuxes the streams and passes the data via pipes to the stream readers. This multithreaded nature