我知道删除map的键不会释放内存。
那么以下操作会导致map占用的内存连续增加吗?我不太明白背后的原理。
1.定义一个全局变量map
2.重复存储和删除 key
```go
package main
import (
"log"
"runtime"
)
var m = make(map[int]bool)
func main() {
for i := 0; i < 50000; i++ {
m[i] = true
delete(m, i)
readMemStats()
}
}
// 打印内存占用信息
func readMemStats() {
var ms runtime.MemStats
runtime.ReadMemStats(&ms)
log.Printf("Alloc = %v kb TotalAlloc = %v kb Sys = %v kb NumGC = %v\n", ms.Alloc/1024, ms.TotalAlloc/1024, ms.Sys/1024, ms.NumGC)
}
```
<a href="/user/focusonline" title="@focusonline">@focusonline</a> 啦啦啦啦啦,出来玩耍
#4
更多评论