go 内存为什么只增不减 runtime.MemStats.Sys 
                            
                                                    
                        
                    
                    
  
                    
                    下面是写了给测试的demo。想问下内存为什么只增不减呢。
for 循环一遍之后无用的变量不应该释放内存么。
还有不理解的地方是整个程序结束前为什么内存还是没有下降。
package main
import (
    "fmt"
    "runtime"
)
func main() {
    Mem(fmt.Sprintf("for start"))
    for i := 0; i < 20; i++ {
        nums := []string{"1", "2", "3", "4", "567"}
        nums = append(nums, "5")
        Mem(fmt.Sprintf("for%d", i))
        runtime.GC()
    }
    Mem(fmt.Sprintf("for end"))
}
func Mem(msg string) {
    var m runtime.MemStats
    runtime.ReadMemStats(&m)
    fmt.Println(msg, m.Sys)
}
运行结果:
for start 6443144
for0 6443144
for1 6770824
for2 6836360
for3 6836360
for4 6836360
for5 6836360
for6 6836360
for7 6836360
for8 6836360
for9 6836360
for10 6836360
for11 6836360
for12 6836360
for13 6836360
for14 6836360
for15 6836360
for16 6836360
for17 6836360
for18 7098504
for19 7098504
for end 7098504 
           
         
             
             
           
           关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: