mirror of
https://github.com/tailscale/tailscale.git
synced 2025-08-22 02:50:42 +00:00
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>
This commit is contained in:

committed by
Brad Fitzpatrick

parent
def089f9c9
commit
7149155b80
@@ -52,7 +52,7 @@ func (a *Port) lessThan(b *Port) bool {
|
||||
}
|
||||
|
||||
func (a List) sameInodes(b List) bool {
|
||||
if a == nil || b == nil || len(a) != len(b) {
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
}
|
||||
for i := range a {
|
||||
|
Reference in New Issue
Block a user