до сотен мегабайт буфер?
да там параллельно идет куча таких коннектов на рест, всё xml
https://forum.golangbridge.org/t/bytes-makeslice-in-goroutines-creates-abnormal-memory-usage/2038 как раз ваша проблема описана
У тебя там http клиент?
да. смотрю пока ссылку выше от Александра
А можешь примерно показать как ты работаешь с http.Response ?
resp, err := client.Do(req) if err != nil { if debug { log.Println(err) } return false, err } defer resp.Body.Close() lim := &io.LimitedReader{R: resp.Body, N: RESP_BUFF_MAX} data, err := io.ReadAll(lim) if err != nil { return false, err } if err := xml.Unmarshal(data, conf); err != nil { return false, err }
попробуй сделать так и померять defer func() { io.Copy(io.Discard, resp.Body) resp.Body.Close() }()
xml.NewDecoder(resp.Body).Decode() ?
то же самое и xml.NewDecoder не помог(((
так net/http это и так делает после завершения хэндлера, для transfer-encoding: chunked
Обсуждают сегодня