函数结束后,golang没有释放变量

时间:2020-03-31 09:05:18

标签: go

我用golang编写了一个简单的程序,如下所示,它确实占用了4GB的内存空间,并且在函数结束后没有释放它。如何释放占用的内存?

func main() {
    wait := make(chan bool, 1)
    go func() {
        slice := make([]int64, 0)
        for i := 0; i < 1000 * 1000 * 100; i++ {
            slice = append(slice, 1)
        }
    }()

    <- wait
}

1 个答案:

答案 0 :(得分:-1)

GC只是将该内存标记为有用,而不是立即释放它,它们会定期释放未使用的内存,因此要真正释放内存需要一些时间。