Skip to content

Commit 3090461

Browse files
committed
tsweb/varz: optimize some allocs, add helper func for others
Updates #cleanup Updates tailscale/corp#23546 (noticed when doing this) Change-Id: Ia9f627fe32bb4955739b2787210ba18f5de27f4d Signed-off-by: Brad Fitzpatrick <[email protected]>
1 parent 8ba9b55 commit 3090461

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

tsweb/varz/varz.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,16 @@ import (
2323
"tailscale.com/version"
2424
)
2525

26+
// StaticStringVar returns a new expvar.Var that always returns s.
27+
func StaticStringVar(s string) expvar.Var {
28+
var v any = s // box s into an interface just once
29+
return expvar.Func(func() any { return v })
30+
}
31+
2632
func init() {
2733
expvar.Publish("process_start_unix_time", expvar.Func(func() any { return timeStart.Unix() }))
28-
expvar.Publish("version", expvar.Func(func() any { return version.Long() }))
29-
expvar.Publish("go_version", expvar.Func(func() any { return runtime.Version() }))
34+
expvar.Publish("version", StaticStringVar(version.Long()))
35+
expvar.Publish("go_version", StaticStringVar(runtime.Version()))
3036
expvar.Publish("counter_uptime_sec", expvar.Func(func() any { return int64(Uptime().Seconds()) }))
3137
expvar.Publish("gauge_goroutines", expvar.Func(func() any { return runtime.NumGoroutine() }))
3238
}

0 commit comments

Comments
 (0)