golang的读取Response.Body时出现了内存泄漏,请大家帮忙一块分析下

读取http.Do返回的Response.Body,时间久了,内存占用在一路上升。

部分代码:

    if response != nil {
        defer response.Body.Close()
    }

read body:

func _ReadResponseBody(r *http.Response) []byte {
    buffer := bytes.NewBuffer(make([]byte, 0, 65536))
    io.Copy(buffer, r.Body)
    temp := buffer.Bytes()
    length := len(temp)
    var body []byte
    if cap(temp) > (length + length/10) {
        body = make([]byte, length)
        copy(body, temp)
    } else {
        body = temp
    }

    return body
}

stackimpact分析

参考: http://openmymind.net/Go-Slic...

查看回复

相关问答