net/http: allocate CloseNotifier channel lazily
The CloseNotifier interface is deprecated. We can defer allocating the
backing channel until the first use of CloseNotifier.
goos: linux
goarch: amd64
pkg: net/http
cpu: Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz
│ before │ after │
│ sec/op │ sec/op vs base │
Server-8 160.8µ ± 2% 160.1µ ± 1% ~ (p=0.353 n=10)
CloseNotifier/h1-8 222.1µ ± 4% 226.4µ ± 7% ~ (p=0.143 n=10)
geomean 189.0µ 190.4µ +0.75%
│ before │ after │
│ B/op │ B/op vs base │
Server-8 2.292Ki ± 0% 2.199Ki ± 0% -4.07% (p=0.000 n=10)
CloseNotifier/h1-8 3.224Ki ± 0% 3.241Ki ± 0% +0.51% (p=0.000 n=10)
geomean 2.718Ki 2.669Ki -1.80%
│ before │ after │
│ allocs/op │ allocs/op vs base │
Server-8 21.00 ± 0% 20.00 ± 0% -4.76% (p=0.000 n=10)
CloseNotifier/h1-8 50.00 ± 0% 50.00 ± 0% ~ (p=1.000 n=10) ¹
geomean 32.40 31.62 -2.41%
¹ all samples are equal
Change-Id: I3f35d56b8356fb660589b7708a023e4480f32067
GitHub-Last-Rev:
c75696b9b8498ae03a4ad9527b9b7c8337415456
GitHub-Pull-Request: golang/go#71163
Reviewed-on: https://go-review.googlesource.com/c/go/+/640598
Reviewed-by: Damien Neil <dneil@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>