我正在使用以下功能下載小於20MB的文件。它將整個內容讀到內存中,因爲另一個函數在將字節寫入磁盤之前必須先處理字節。釋放未使用的內存?
func getURL(url string) ([]byte, error) {
resp, err := http.Get(url)
if err != nil {
return nil, fmt.Errorf("getURL: %s", err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("getURL: %s", err)
}
return body, nil
}
這工作正常,但所有內存都在系統上消耗。
是否有可能釋放body
在被另一個函數處理後使用的內存,因此內存使用量不會大於當前正在處理的字節數?