]> Cypherpunks repositories - gostls13.git/commit
net: reduce allocation size in ReadFromUDP
authorJosh Bleecher Snyder <josharian@gmail.com>
Fri, 12 Feb 2021 03:34:22 +0000 (19:34 -0800)
committerDamien Neil <dneil@google.com>
Mon, 16 Aug 2021 23:57:02 +0000 (23:57 +0000)
commit9c5eb16f6cba2b3d75f440dfec157183cc6d0f35
tree9de133a63e114dc01f4bd6b0be4a100f9b7770a6
parentd9349175ad13ab228d3224c4bff8e3e1b2936b42
net: reduce allocation size in ReadFromUDP

Switch to concrete types. Bring your own object to fill in.

Allocate just enough for the IP byte slice.
The allocation is now just 4 bytes for IPv4,
which puts it in the tiny allocator, which is much faster.

name                  old time/op    new time/op    delta
WriteToReadFromUDP-8    13.7µs ± 1%    13.4µs ± 2%   -2.49%  (p=0.000 n=10+10)

name                  old alloc/op   new alloc/op   delta
WriteToReadFromUDP-8     32.0B ± 0%      4.0B ± 0%  -87.50%  (p=0.000 n=10+10)

name                  old allocs/op  new allocs/op  delta
WriteToReadFromUDP-8      1.00 ± 0%      1.00 ± 0%     ~     (all equal)

Windows is temporarily stubbed out.

Updates #43451

Change-Id: Ief506f891b401d28715d22dce6ebda037941924e
Reviewed-on: https://go-review.googlesource.com/c/go/+/331490
Trust: Josh Bleecher Snyder <josharian@gmail.com>
Trust: Damien Neil <dneil@google.com>
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Run-TryBot: Damien Neil <dneil@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
api/next.txt
src/internal/poll/fd_unix.go
src/internal/poll/fd_windows.go
src/net/fd_posix.go
src/net/net_fake.go
src/net/udpsock_posix.go
src/syscall/net_js.go
src/syscall/syscall_unix.go