curl localhost:8888/debug/pprof/heap >heap.base sleep 60s curl localhost:8888/debug/pprof/heap >heap.current go tool pprof -http localhost:8889 -base heap.base heap.current
定位到方法:99%新生成的對象在這個方法里
查看view->source,發現
發現問題代碼:itemMap := item 這里做了淺拷貝,又循環了item,導致邊賦值邊循環,循環了很多次,創建了很多對象
解決方案:循環遍歷賦值
itemMap := make(map[string]interface{})
for k,v := range item {
itemMap[k] = v
}
淺拷貝:只取了地址
=號這個都是淺拷貝,必須循環賦值才是深拷貝
itemMap := make(map[string]interface{})
itemMap = item
深拷貝:復制了值