3 ms·
Has HTTP/2 performance improved as of Go 1.24? Last I checked forcing HTTP/1.1 everywhere was a massive improvement in throughout and latency for a very busy di
by xyzzy_plugh 5mo ago
Has HTTP/2 performance improved as of Go 1.24? Last I checked forcing HTTP/1.1 everywhere was a massive improvement in throughout and latency for a very busy distributed system.
- jeffbee 5mo agoIt has a bit, but there are fundamental issues. Given the way the Go runtime wants to deal with reading and writing sockets, HTTP/2 requires 2 extra goroutines per connection, and the bouncing around over channels that this implies. This might not be a law of physics but there isn't another obvious way to do it in Go. In the past when I wanted a really fast Go service using HTTP/2 I put the HTTP server in a C++ subprocess that handled the sockets and communicated with the Go application over a pipe. That was nice and fast, avoided the congestive collapse that Go suffers with too many runnable goroutines.
- tgv 5mo agoAny idea at what point that happens, or how much too many is?