diff options
| author | Brad Fitzpatrick <bradfitz@tailscale.com> | 2026-04-22 04:38:55 +0000 |
|---|---|---|
| committer | Brad Fitzpatrick <brad@danga.com> | 2026-04-24 09:48:11 -0700 |
| commit | 006d7e180e4a46112b1905f1e2c2e1060ef31d8b (patch) | |
| tree | d88b072d13265967c9d9f46012a450c45f1a883f /wgengine/netstack/netstack_test.go | |
| parent | 306fab796cd9d071b412a751cf002890a32788bb (diff) | |
| download | tailscale-006d7e180e4a46112b1905f1e2c2e1060ef31d8b.tar.xz tailscale-006d7e180e4a46112b1905f1e2c2e1060ef31d8b.zip | |
version: use debug.ReadBuildInfo in CmdName on non-Windows
CmdName was re-opening the running executable and scanning it in
64KiB chunks for the Go modinfo markers on every call. The same
modinfo is already parsed at startup and exposed via
runtime/debug.ReadBuildInfo, so prefer that on non-Windows. Windows
still takes the scanning path because its GUI-binary override keys
off the on-disk executable name.
benchstat of BenchmarkCmdName (Linux, before vs after):
goos: linux
goarch: amd64
pkg: tailscale.com/version
cpu: Intel(R) Xeon(R) 6975P-C
│ /tmp/old.txt │ /tmp/new.txt │
│ sec/op │ sec/op vs base │
CmdName-16 556045.5n ± 1% 825.6n ± 1% -99.85% (p=0.000 n=10)
│ /tmp/old.txt │ /tmp/new.txt │
│ B/op │ B/op vs base │
CmdName-16 64.587Ki ± 0% 1.156Ki ± 0% -98.21% (p=0.000 n=10)
│ /tmp/old.txt │ /tmp/new.txt │
│ allocs/op │ allocs/op vs base │
CmdName-16 8.000 ± 0% 7.000 ± 0% -12.50% (p=0.000 n=10)
Fixes #19486
Change-Id: I925c5e28b64815a602459beb6c8dab8779339a6c
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
Diffstat (limited to 'wgengine/netstack/netstack_test.go')
0 files changed, 0 insertions, 0 deletions
