golang map delete 會(huì)釋放value嗎
2 回答

烙印99
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
不會(huì)釋放value,僅僅標(biāo)記為不可用,但實(shí)際內(nèi)存還是在占用
1234567891011121314151617181920212223242526272829303132333435363738394041424344 | package main import ( "log" "runtime" ) var intMap map[ int ] int var 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) } |

蝴蝶刀刀
TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
我最早使用的語(yǔ)言是Java和Python, 并且一直都對(duì)Python充滿好感, 我喜歡這種很樸實(shí)和高效率的感覺(jué), 但我卻最后沒(méi)有采用Python,原因其實(shí)也很簡(jiǎn)單, 我就是不喜歡縮進(jìn)語(yǔ)法, 就跟很多人換工作僅僅是為了屏幕更大一點(diǎn)一樣
- 2 回答
- 0 關(guān)注
- 1696 瀏覽
添加回答
舉報(bào)
0/150
提交
取消