使用 Go 映射时,估计它们消耗的内存通常很有用。虽然文档指出初始内存分配取决于实现,但这里更深入地介绍了如何确定这一点:
Go 映射基于两种类型构建: hmap(标头)和bmap(桶数组)。检查源代码可以发现,当未指定初始空间时 (foo := make(map[string]int)),映射中只会创建一个存储桶。
1 * 8 + 1 * 1 + 1 * 2 + 1 * 4 + 2 * 8 + 1 * 8 = 40 bytes
8 * 1 = 8 bytes
40 + 8 = 48 bytes (64-bit architecture)
以上是新创建的 Go Map 消耗多少内存?的详细内容。更多信息请关注PHP中文网其他相关文章!