2020-09-30:谈谈内存对齐。

福大大架构师每日一题 2020-09-30 06:51:53
2020-09-30:谈谈内存对齐。
...全文
1387 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
KeepSayingNo 2020-09-30
  • 打赏
  • 举报
回复
第一条:第一个成员的首地址为0 第二条:每个成员的首地址是自身大小的整数倍 第三条:最后以结构总体对齐。
  • 打赏
  • 举报
回复
百度搜索【福大大架构师每日一题】
tianfang 2020-09-30
  • 打赏
  • 举报
回复
8088 ,8031这样只要8位数据总线的CPU上不需要内存对齐 32位之后才出现的问题,CPU和内存的数据总线,32位总线只能从4n开始的位置开始读取1,2,4字节,64位总线是从8n开始的位置开始读取1,2,4,8字节,这样会导致未对齐的数据需要读两次,如存储在1,2,3,4的32位数据,虽然是一个CPU指令但是需要两个总线周期才能读取,第一次读4字节【0,1,2,3】,第二次读【4,5,6,7】字节,然后拼成【1,2,3,4】传递给CPU, 内存对齐就是优化数据的存储位置,尽可能从4n,8n开始的位置存储。包括简单数据的对齐,和复杂的struct,对象的对齐

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧