[Golang 修仙之路] Go基础:内存对齐

36 阅读1分钟
  • 地址总线:决定寻址空间的范围。32根,对应4G,64根,理论最大4G * 4G。
  • 数据总线:决定每次能同时操作多少字节。32根,同时操作4字节;64根,同时操作8字节。

实际的内存:

image.png

8个chip,每个chip一次选择一个字节,8个组合起来,作为逻辑上认为的连续8字节。

image.png

如果不内存对齐,就导致明明是8个字节,本来可以一次性访问到,但是却需要两次访问。

Go语言中,不同数据类型的对齐边界与平台相关。是选择数据类型大小和平台寄存器宽度(机器字长)中较小的那个。

  • 这里的机器字长,可以理解成数据总线的条数,也就是一次性可以读取的比特数。

image.png