首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么堆需要确保以8字节对齐方式分配呢?

为什么堆需要确保以8字节对齐方式分配呢?
EN

Software Engineering用户
提问于 2011-10-10 19:46:55
回答 2查看 1.9K关注 0票数 5

4-字节=字;8-字节=2 x字

那么,为什么堆不与4字节对齐(因为它每次都会抓取一个单词,对吗?)

如果我们用8字节对齐,为什么不是12? 16?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2011-10-10 19:52:58

效率和CPU架构。我记得当阿尔法芯片出现时,它们只能读取32位边界上的内存。如果您想读取字节3,您将加载一个32位数字,然后必须旋转结果来隔离您想要的字节。在这种体系结构中,传统的逐字节字符串比较效率很低。

话虽如此,我不知道现代处理器是做什么的。我已经有一段时间没处理这事了。

票数 6
EN

Software Engineering用户

发布于 2011-10-10 20:49:31

简短的回答是“它没有”。对齐与堆管理器的实现细节相关联,仅此而已。您的堆管理器可能出于各种原因(例如效率、体系结构、作者的想法或其他原因)而需要对齐。如果你有理由关心,请与我们分享。

顺便说一下:

4-字节=字8-字节=2 x字

这是一个假设,是不正确的,并导致了许多各种各样的,有时昂贵和总是不可原谅的软件移植问题。字的大小取决于使用的硬件架构、操作系统、语言和编译器。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/113521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档