golang map delete 會釋放value嗎
2 回答

四季花海
TA貢獻1811條經(jīng)驗 獲得超5個贊
不會釋放value,僅僅標記為不可用,但實際內(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貢獻1865條經(jīng)驗 獲得超7個贊
我最早使用的語言是Java和Python, 并且一直都對Python充滿好感, 我喜歡這種很樸實和高效率的感覺, 但我卻最后沒有采用Python,原因其實也很簡單, 我就是不喜歡縮進語法, 就跟很多人換工作僅僅是為了屏幕更大一點一樣
- 2 回答
- 0 關(guān)注
- 757 瀏覽
添加回答
舉報
0/150
提交
取消