返回首页  设为首页  加入收藏  今天是:
网站首页电脑主板电脑cpu电脑内存电脑硬盘电脑显卡电脑电源显示器电脑配件电脑维修
相关文章
 内存对齐是什么?为什么要对…
 提升工作便利性神器有了它们…
 TECNO携旗舰款MEGABOOK S1笔…
 你的电脑电源该换了?看看新…
 内置14CM大尺寸双滚珠轴承风…
 电源坏了换电源风扇坏了换风…
 科技大事件:富士康在印度投…
 中端的首选!华硕P8Z77-V LX…
 京东综合排名第一MSI微星H11…
 电脑换主板用重装系统吗?笔…
 从ATX到ITX锐龙7000系电脑该…
 英伟达称Ampere GeForce RTX…
 NVIDIA CEO黄仁勋:RTX光线追…
 Intel将推进自家独立显卡的研…
 手机是谁发明的 手机的发明者…
 飞机是谁发明的 世界上第一架…
 暴利时代 笔记本电源适配器购…
 广达电脑推出电源适配器Wind…
 Finsix推新版笔记本电源适配…
 群光电子代工案例汇总获多家…
 华硕在海外推出 ROG 100W Ty…
 Backblaze:到 2025 年 HDD …
 查看电脑的固态硬盘和机械硬…
 头部吃播IP浪胃仙创始人涉嫌…
 桌面mini主机好用吗?小米让…
 双硬盘的好处很多人可能还不…
 显卡价格调节器:AMD Radeon…
 多名球星加入 华硕吹雪主板双…
 高性能显卡华硕1080 长沙促销…
 高效生产力轻薄本首选华硕无…
 华硕重炮手主板双12火力全开…
 智慧导购大赛启动会 CCFA 武…
 传统行业也能“新零售”?独…
 茅台酒11个月销售破千亿背后…
 五芳斋市值暴跌下苦寻“第二…
 【高新产业链观察】2022年10…
 “黑科技工场”再创新 —— …
 爆料!七喜电脑将推出27寸高…
 Win10电脑英伟达怎么设置双屏…
 第十一课 电脑常用显示设置
 新三板创新层公司玮硕恒基新…
 【覟】的英语怎么说【覟】的…
 好内功加屠龙刀:解析联想Th…
 电脑的内存越大越好吗?如果…
 【手慢无】装机首选!199元抢…
 电脑开机显示蓝屏英文
 笔记本cpu性能排行小编教你笔…
 笔记本cpu怎么排名 笔记本cp…
 求:笔记本cpu型号排行榜
 笔记本cpu天梯图2019年7月
专题栏目
网络
您现在的位置: 电脑评测网 >> 电脑内存 >> 正文
高级搜索
内存对齐是什么?为什么要对齐?怎么?
作者:佚名 文章来源:本站原创 点击数: 更新时间:2022/12/15 12:29:12 | 【字体:

  蘑菇团购的问题解决了,但是却又引入了一个新的疑问:内存对齐(memory alignment)。

  所谓内存对齐,就是将数据存放到一个是字的整数倍的地址指向的内存之中。处理器在执行指令去操作内存中的数据,这些数据通过地址来获取。不论什么数据都有一定的大小,当一个数据所在的地址和它的大小对齐的时候,就说这个数据自然对齐了(naturally aligned),否则就是没对齐。

  怎么理解数据的地址和它的大小对齐这句话呢?例如有一个地址a,它是n的整数倍,并且这个n是2的幂,这时候我们就可以说a和n个字节对齐了。举个栗子:当 a = 0x00000008,n = 4,22= 4 的时候,就说地址a和4字节对齐了[2]。

  套用到数据的地址和它的大小对齐这句话,例如一个long变量,它占用4个字节,也就是他的大小是4字节,如果这个变量的地址为0x00000004、0x00000008等,那么这个变量就和4字节对齐了,而如果它的地址是0x00000006之类的,那么它就没对齐。

  当存取一个地址对齐了它数数据大小的数据结构的时候,就说这是一次对齐存取。上面的例子说的是基本数据类型,当一个复杂的数据结构中的所有成员都自然对齐了,我们就说这个数据结构对齐了,为了能让复杂数据结构对齐,编译器一般会对数据结构做一些填充,使得它的成员都能对齐。

  很多时候,我们是不需要关注内存对齐的问题的,因为处编译器已经自动为数据进行对齐:对于基本数据类型,编译器会给他们分配一个是他们大小n被的地址;对于组合类型数据结构,编译器会在成员函数中填充一些字节使得每个成员都自然对齐[5]。

  这个虽然看上去整个结构体只占用了8个字节,但是世界上因为编译器做了填充使得结构体的成员都能对齐,这个结构体实际上占据了12个字节。编译器填充完的结构体如下:

  但是有些时候,出于一些特殊的需求,需要人工干预编译器的对齐工作。例如,虽然一个int类型的数据在某些机器上只占了四个字节,但是你却希望它能够按照16个字节对齐,这个时候你就可以使用int x __attribute__ ((aligned (16))) = 0;来指导编译器按照你想要你的对齐方式进行对齐。

  了解了对齐,处理让我们知道怎么使用__attribute__ ((aligned ))这个命令意外,有时候也可以指导我们怎么样安排一个数据结构使得空间利用率变高,例如吧上面结构体中的成员的顺序改成下面这样,这个结构体就从原来的占用12个字节变成占用8个字节,节省了30%的空间。如果这个结构体在内存中存在成百上千个,省出来的空间就很客观了。这样不仅能让我们的数据对齐,同时还实现了数据的紧凑。

  通过一段代码来描述内存对齐的现象。 上述代码打印出来的结果为:24,16 为什么相同的结构体,只是交换了变量 ab...

  什么是内存对齐 理论上计算机对于任何变量的访问都可以从任意位置开始,然而实际上系统会对这些变量的存放地址有限制,通...

  查询内网中关于内存对齐的资料发现,它们往往只谈论一个层面的问题,而不涉及或稍微涉及更高或更低层面的问题;而这对于喜...

  家长要从细节中去发现她的成长轨迹,以及现在的心理状态。家长需要在细节中体现关爱,并理解和尊重孩子,与他共同成长。这...

  心懒懒的,就想找个人聊聊。可是,聊什么呢?还有共同语言吗?就像是两个的世界的人。几句话心里的湖水就见底了,接下来就...

  刘润5分钟 番茄工作法 小番茄:工作25分钟,休息5分钟 大番茄:工作50分钟,休息10分钟 练习工作的专注力 当...

  问:想必微信公众号运营者都很清楚,企业服务号如果不发消息,那么粉丝稳步增长,只要一发消息,那么当日粉丝会疯狂的下降...

  前天回京的机上广播里说:北京地表温度23度。 飞机上大家不约而同的啊一声,这太意外了,然后大家纷纷表示不信,猜测是...

电脑内存录入:admin    责任编辑:admin 
  • 上一个电脑内存:

  • 下一个电脑内存: 没有了
  •  
     栏目文章
    普通电脑内存 内存对齐是什么?为什么要对齐?怎么? (12-15)
    普通电脑内存 【覟】的英语怎么说【覟】的英文翻译 (12-15)
    普通电脑内存 好内功加屠龙刀:解析联想ThinkStation P520c… (12-15)
    普通电脑内存 电脑的内存越大越好吗?如果只加大内存电脑反… (12-15)
    普通电脑内存 【手慢无】装机首选!199元抢购16GB DDR4 320… (12-15)
    普通电脑内存 电脑开机显示蓝屏英文 (12-15)
    普通电脑内存 电脑物理内存很大有没有设置虚拟内存的需要 (12-14)
    普通电脑内存 目前虚拟货币的英文缩写_求各种数字货币的简称… (12-14)
    普通电脑内存 什么是虚拟内存 虚拟内存有什么用【图解】 (12-14)
    普通电脑内存 深度剖析虚拟内存 (12-14)
    普通电脑内存 什么是虚拟内存?虚拟内存能提升电脑速度吗?… (12-14)
    普通电脑内存 修复域控制器内存泄露问题微软为 Win7  Win81… (12-14)
    普通电脑内存 手机内存又上热搜多大内存才够用?从实用性和… (12-14)
    普通电脑内存 内存 - OFweek显示网 (12-14)
    普通电脑内存 我搞不懂为啥你们都要配32G内存? (12-14)
    普通电脑内存 十铨为 AMD 平台推出新款 DDR5 内存支持 EXPO… (12-14)
    普通电脑内存 电脑内存和硬盘大小是什么意思? (12-14)
    普通电脑内存 搭载锐龙6900HX32GB内存高性能迷你电脑主机:… (12-14)
    普通电脑内存 斩获机器翻译大赛第一名!OPPO或开启“无障碍… (12-14)
    普通电脑内存 去哪儿网内部邮件曝光取消今年部分绩效奖金;… (12-14)