Const Value of GoRuntime
Contents
最近在看Go Runtime源码的时候,发现很多字面量,比较有意思。
- PtrSize = 4
|
|
Map
- bucketCntBits = 3
桶个数占位数
- bucketCnt = 1 << bucketCntBits = 8
桶个数
- loadFactor = 6.5
触发扩容操作的最大装载因子的临界值
- maxKeySize = 128
- maxValueSize = 128
为了保持内联,键值对的最大长度都是128
字节,如果超过128
个字节,就存储它的指针
- dataOffset = unsafe.Offsetof(struct {b bmap; v int64} {}.v)
dataOffset
应该是bmap struct
的大小,但是需要内存字节
- noCheck = 1<<(8*sys.PtrSize) - 1
用于迭代检查的哨兵桶ID