perf(sdk): pre-allocate slices to avoid dynamic growth
Replace dynamic slice growth with pre-allocation using make() with known capacity. This reduces allocations during relay iteration.
cognitive committed
Dec 30, 2025 at 00:22 UTC
d46d6ae754868db22d0771ad4faaae700aabb43e
1 file changed
+2
-3
sdk/sdk.go
+2
-3
@@ -104,9 +104,8 @@ func (g *Client) Dial(cred *cryptoops.Credential, leaseID string, alpn string) (
104
Str("alpn", alpn).
105
Msg("[SDK] Dialing to lease")
106
107
- var relays []*connRelay
108
-
107
g.mu.Lock()
108
+ relays := make([]*connRelay, 0, len(g.relays))
109
for _, server := range g.relays {
110
relays = append(relays, server)
111
}
@@ -626,9 +625,9 @@ func (g *Client) GetRelays() []string {
625
626
func (g *Client) LookupName(name string) (*rdverb.Lease, error) {
627
log.Debug().Str("name", name).Msg("[SDK] Looking up name")
629
- var relays []*connRelay
628
629
g.mu.Lock()
630
+ relays := make([]*connRelay, 0, len(g.relays))
631
for _, server := range g.relays {
632
relays = append(relays, server)
633
}