Go Map 保留多少内存?
在 Go 中,map 是动态分配的,初始容量未指定。这意味着内存分配是特定于实现的。要确定初始内存分配,请查阅映射的内部结构。
映射结构
映射由标头(类型 hmap)和存储桶数组(类型bmap)。在没有初始容量的情况下创建时,会分配单个存储桶。
标头结构和大小
标头包括:
int、uintptr 和 unsafe.Pointer 的大小等于字大小(64 位机器上为 8 字节)。因此,标头大小为 40 字节。
桶结构和大小
每个桶包含一个 8 * uint8 的数组。将其添加到标头大小中,我们得到总的初始内存分配:
Header Size (40 bytes) + Bucket Size (8 bytes) = **48 bytes (64-bit architecture)**
以上是Go Map 最初预留多少内存?的详细内容。更多信息请关注PHP中文网其他相关文章!