Reduce allocations (#17584)

* Reduce allocations

* Add stringsHasPrefixFold which can compare string prefixes, while ignoring case and not allocating.
* Reuse all msgp.Readers
* Reuse metadata buffers when not reading data.

* Make type safe. Make buffer 4K instead of 8.

* Unslice
This commit is contained in:
Klaus Post
2023-07-06 16:02:08 -07:00
committed by GitHub
parent 1bf23374a3
commit ff5988f4e0
21 changed files with 67 additions and 36 deletions

View File

@@ -22,7 +22,6 @@ import (
"io"
"net/http"
"net/url"
"strings"
"time"
"github.com/klauspost/compress/gzhttp"
@@ -182,7 +181,7 @@ func StatusCode(text string) int {
func fwdHeadersToS3(h http.Header, w http.ResponseWriter) {
const trim = "x-amz-fwd-header-"
for k, v := range h {
if strings.HasPrefix(strings.ToLower(k), trim) {
if stringsHasPrefixFold(k, trim) {
w.Header()[k[len(trim):]] = v
}
}