Go 1.27 ускоряет HTTP/1-запросы почти в 5 раз благодаря переиспользованию соединений

Better HTTP/1 connection reuse in Go 1.27

Go 1.27 ускоряет HTTP/1-запросы почти в 5 раз благодаря переиспользованию соединений

В Go 1.27 net/http.Transport автоматически асинхронно вычитывает неиспользованное тело HTTP/1-ответа (до 256 КБ или 50 мс), что позволяет переиспользовать соединение. Раньше при вызове resp.Body.Close() с непрочитанным телом соединение отбрасывалось, и каждый запрос устанавливал новое TCP- и TLS-соединение. На примере 100 запросов к index.golang.org время сократилось с ~710 мс в Go 1.26 до ~150 мс в Go 1.27.

На Go 1.27 та же программа выполняется за ~150 миллисекунд. Это почти в 5 раз быстрее!

Ещё за этот день

2026-10-14