Go的内存对齐
从煎鱼那看的,也是扫盲系列,细节具体等慢慢补充,先开题感受下。 这就是没内存对齐,这就导致了我们取1-4花了两步。实际上我们很多都是默认开内存对齐的,那么还有什么研究的,可以稍微优化一些,比如下面这种。 type Part1 struct { a bool b int32 c int8 d int64 e byte } type Part2 struct { c int8 a bool e byte b int32 d int64 } func main() { part1 := Part1{} part2 := Part2{} fmt.Println(unsafe.Sizeof(part1), unsafe.Alignof(part1)) fmt.Println(unsafe.Sizeof(part2), unsafe.Alignof(part2)) } 输出 32 8 16 8 Part1 axxx|bbbb|cxxx|xxxx|dddd|dddd|exxx|xxxx Part2 ecax|bbbb|dddd|dddd https://eddycjy.gitbook.io/golang/di-1-ke-za-tan/go-memory-align 来源: https://www.cnblogs.com/CherryTab/p/12632032.html