Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 11, 07:15 UTC
reverseproxy: preallocate upstream slices with known sizes (#7926)
Preallocate the sources slice in MultiUpstreams.Provision and the netAddrs slice in UpstreamResolver.ParseAddresses now that their final lengths are known, avoiding the intermediate append regrowth allocations. For a 4-address resolver this reduces ParseAddresses from 11 to 9 allocs/op and 528 to 384 B/op; the benefit scales with the number of sources/addresses. | before | after | | sec/op | sec/op vs base | UpstreamResolverParseAddresses-8 | 2.289µ |1.946µ ~ (p=0.165) noisy | B/op: 528 → 384 -27.27% (p=0.000) allocs/op: 11 → 9 -18.18% (p=0.000) Adds BenchmarkUpstreamResolverParseAddresses as per policy.