私は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
が別の関数によって処理されたメモリを解放することはできますか?そのため、メモリ使用量は現在処理されているバイト数よりも大きくなりませんか?