tailscale/portlist
Brad Fitzpatrick 7149155b80 portlist: further reduce allocations on Linux
Make Linux parsePorts also an append-style API and attach it to
caller's provided append base memory.

And add a little string intern pool in front of the []byte to string
for inode names.

    name       old time/op    new time/op    delta
    GetList-8    11.1ms ± 4%     9.8ms ± 6%  -11.68%  (p=0.000 n=9+10)

    name       old alloc/op   new alloc/op   delta
    GetList-8    92.8kB ± 2%    79.7kB ± 0%  -14.11%  (p=0.000 n=10+9)

    name       old allocs/op  new allocs/op  delta
    GetList-8     2.94k ± 1%     2.76k ± 0%   -6.16%  (p=0.000 n=10+10)

More coming. (the bulk of the allocations are in addProcesses and
filesystem operations, most of which we should usually be able to
skip)

Updates #5958

Change-Id: I3f0c03646d314a16fef7f8346aefa7d5c96701e7
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2022-10-22 10:50:51 -07:00
..
clean_test.go portlist: normalise space delimited process names (#5634) 2022-09-15 12:17:31 +02:00
clean.go portlist: normalise space delimited process names (#5634) 2022-09-15 12:17:31 +02:00
netstat_exec.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
netstat_test.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
netstat.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
poller.go portlist: unexport all Poller fields, removing unused one, rework channels 2022-10-22 05:47:34 -07:00
portlist_ios.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
portlist_js.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
portlist_linux_test.go portlist: further reduce allocations on Linux 2022-10-22 10:50:51 -07:00
portlist_linux.go portlist: further reduce allocations on Linux 2022-10-22 10:50:51 -07:00
portlist_macos.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
portlist_other.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
portlist_test.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
portlist_windows.go portlist: update some internals to use append-style APIs 2022-10-21 22:26:37 -07:00
portlist.go portlist: further reduce allocations on Linux 2022-10-22 10:50:51 -07:00