From 83b53527fa738ac3364a5f7e4921f2e81f69584e Mon Sep 17 00:00:00 2001 From: 1911860538 <alxps1911@gmail.com> Date: Thu, 17 Apr 2025 14:51:18 +0000 Subject: [PATCH] net/http: replace map lookup with switch for scheme port Improve scheme port lookup by replacing map with switch, reducing overhead and improving performance. Change-Id: I45c790da15e237d5f32c50d342b3713b98fd2ffa GitHub-Last-Rev: 4c02e4cabf181b365fbf2b722e3051625a289527 GitHub-Pull-Request: golang/go#73422 Reviewed-on: https://go-review.googlesource.com/c/go/+/666356 Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: David Chase <drchase@google.com> --- src/net/http/transport.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/net/http/transport.go b/src/net/http/transport.go index 59a125cbc78..07b3a9e1e72 100644 --- a/src/net/http/transport.go +++ b/src/net/http/transport.go @@ -2931,11 +2931,17 @@ func (pc *persistConn) closeLocked(err error) { pc.mutateHeaderFunc = nil } -var portMap = map[string]string{ - "http": "80", - "https": "443", - "socks5": "1080", - "socks5h": "1080", +func schemePort(scheme string) string { + switch scheme { + case "http": + return "80" + case "https": + return "443" + case "socks5", "socks5h": + return "1080" + default: + return "" + } } func idnaASCIIFromURL(url *url.URL) string { @@ -2950,7 +2956,7 @@ func idnaASCIIFromURL(url *url.URL) string { func canonicalAddr(url *url.URL) string { port := url.Port() if port == "" { - port = portMap[url.Scheme] + port = schemePort(url.Scheme) } return net.JoinHostPort(idnaASCIIFromURL(url), port) } -- GitLab