Map 如何查看容量大小
来源:1-9 神奇的内置数据结构
EwdAger
2021-06-09 22:00:05
上课提到了 Map 无法缩容,并给出了这个例子让我们测试:
package main
var m = make(map[int]int)
func main() {
for i := 0; i < 10000000; i++ {
m[i] = i
}
for i := 0; i < 990000; i++ {
delete(m, i)
}
}
那么如何查看 Map 的 buckets 的长度,或者拿到 Map 的容量呢?试了下反射好像也拿不到,直接 unsafe.Sizeof() 好像也只拿到了指针的大小…
( Python 程序员老想着 Debug 的时候直接访问这个对象的私有变量… 可能这里不是直接在 debug 的时候去看?而是去写一个 benchmark 之类的?)
1回答
Xargin
2021-06-09
可以在 delete 后面加一个 map 访问,断点设置过去,然后再 p map.B
但是后面还有 overflow 呢
相似问题