We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bug in the golang net/http implementation of HTTP/2 see golang/go#47840
workaround/proposed fixes:
MaxFrameSize
http2.Transport
http2bufWriterPoolBufferSize
In both case you might need to rebuild the whole net/http lib because of bundle trick used to merge http2 into net/http.
mid-term solution: Investigate using 3rd party HTTP/2 implementation (libcurl ?) or abandon Go and use C++ or Rust ?
The text was updated successfully, but these errors were encountered:
update on nov 2023: progress were made by the Go team. the ratio is now ~2x, down from ~5x.
Sorry, something went wrong.
with go1.21.3:
./nspeed b h1sg then b h2g then b h3g batch #0: Id| Read speed| Write speed| Time| Bytes read| Bytes written|command #1| 11.7 Gbps| 0 bps| 8.00| 11.7 GB| 0 B|get -http1.1 https://[::1]:45025/20g (IPv6 - 0.250 ms - HTTP/1.1 - TLS 1.3) batch #1: Id| Read speed| Write speed| Time| Bytes read| Bytes written|command #3| 8.5 Gbps| 0 bps| 8.00| 8.5 GB| 0 B|get -http2 https://[::1]:45939/20g (IPv6 - 0.113 ms - HTTP/2.0 - TLS 1.3) batch #2: Id| Read speed| Write speed| Time| Bytes read| Bytes written|command #5| 3.7 Gbps| 0 bps| 8.00| 3.7 GB| 0 B|get -http3 https://[::1]:33659/20g (IPv6 - 0.220 ms - HTTP/3.0 - TLS 1.3)```
with go 1.23.2
batch #0: Id| Read speed| Write speed| Time| Bytes read| Bytes written|command #1| 12.2 Gbps| 0 bps| 8.00| 12.2 GB| 0 B|get -http1.1 https://[::1]:46075/20g (IPv6 - 0.151 ms - HTTP/1.1 - TLS 1.3) batch #1: Id| Read speed| Write speed| Time| Bytes read| Bytes written|command #3| 9.3 Gbps| 0 bps| 8.00| 9.3 GB| 0 B|get -http2 https://[::1]:35761/20g (IPv6 - 0.202 ms - HTTP/2.0 - TLS 1.3) batch #2: Id| Read speed| Write speed| Time| Bytes read| Bytes written|command #5| 4.1 Gbps| 0 bps| 8.00| 4.1 GB| 0 B|get -http3 https://[::1]:49088/20g (IPv6 - 0.163 ms - HTTP/3.0 - TLS 1.3)
kgersen
jfgiorgi
No branches or pull requests
bug in the golang net/http implementation of HTTP/2
see golang/go#47840
workaround/proposed fixes:
MaxFrameSize
in ahttp2.Transport
(so this isn't automatic)http2bufWriterPoolBufferSize
in http2.go ?In both case you might need to rebuild the whole net/http lib because of bundle trick used to merge http2 into net/http.
mid-term solution: Investigate using 3rd party HTTP/2 implementation (libcurl ?) or abandon Go and use C++ or Rust ?
The text was updated successfully, but these errors were encountered: