• Meir Fischer's avatar
    http2: remove unnecessary TODO for trailer keys allocation · 69d4b8aa
    Meir Fischer authored
    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/34626Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    69d4b8aa
transport.go 58 KB