mirror of
https://github.com/golang/net.git
synced 2026-03-31 18:37:08 +09:00
http2: remove unnecessary TODO for trailer keys allocation
strings.Join has two allocations: (1) []byte intermediate (2) final string conversion The comma-separated keys are ultimately stored in hpack.HeaderField.Value as a string so (2) is not wasteful. Because strings.Join is used so heavily I assume its implementation is optimal - (1) is necessary. Therefore, short of refactoring hpack.HeaderField's Value type, the status quo seems optimal. This TODO appears to have been copy-pasted from net/http/transfer.go However, the two cases are different. transfer.go has two allocations in addition to strings.Join: concatenation with literals and converting string to bytes in io.WriteString. Change-Id: I292203a6535dd2774f5bf45e7280b89aabb5d78d Reviewed-on: https://go-review.googlesource.com/34626 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
committed by
Brad Fitzpatrick
parent
8fd7f25955
commit
69d4b8aa71
@@ -658,8 +658,6 @@ func commaSeparatedTrailers(req *http.Request) (string, error) {
|
||||
}
|
||||
if len(keys) > 0 {
|
||||
sort.Strings(keys)
|
||||
// TODO: could do better allocation-wise here, but trailers are rare,
|
||||
// so being lazy for now.
|
||||
return strings.Join(keys, ","), nil
|
||||
}
|
||||
return "", nil
|
||||
|
||||
Reference in New Issue
Block a user