为了账号安全,请及时绑定邮箱和手机立即绑定

golang map delete 会释放value吗?

golang map delete 会释放value吗?

Go
喵喵时光机 2019-02-07 22:11:44
golang map delete 会释放value吗
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

不会释放value,仅仅标记为不可用,但实际内存还是在占用

1234567891011121314151617181920212223242526272829303132333435363738394041424344package main import (    "log"    "runtime") var intMap map[int]intvar cnt = 8192 func main() {    printMemStats()     initMap()    runtime.GC()    printMemStats()     log.Println(len(intMap))    for i := 0; i < cnt; i++ {        delete(intMap, i)    }    log.Println(len(intMap))     runtime.GC()    printMemStats()     intMap = nil    runtime.GC()    printMemStats()} func initMap() {    intMap = make(map[int]int, cnt)     for i := 0; i < cnt; i++ {        intMap[i] = i    }} func printMemStats() {    var m runtime.MemStats    runtime.ReadMemStats(&m)    log.Printf("Alloc = %v TotalAlloc = %v Sys = %v NumGC = %v\n", m.Alloc/1024, m.TotalAlloc/1024, m.Sys/1024, m.NumGC)}



查看完整回答
反对 回复 2019-02-27
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

我最早使用的语言是Java和Python, 并且一直都对Python充满好感, 我喜欢这种很朴实和高效率的感觉, 但我却最后没有采用Python,原因其实也很简单, 我就是不喜欢缩进语法, 就跟很多人换工作仅仅是为了屏幕更大一点一样

查看完整回答
反对 回复 2019-02-27
  • 2 回答
  • 0 关注
  • 680 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信