4-字节=字;8-字节=2 x字
那么,为什么堆不与4字节对齐(因为它每次都会抓取一个单词,对吗?)
如果我们用8字节对齐,为什么不是12? 16?
发布于 2011-10-10 19:52:58
效率和CPU架构。我记得当阿尔法芯片出现时,它们只能读取32位边界上的内存。如果您想读取字节3,您将加载一个32位数字,然后必须旋转结果来隔离您想要的字节。在这种体系结构中,传统的逐字节字符串比较效率很低。
话虽如此,我不知道现代处理器是做什么的。我已经有一段时间没处理这事了。
发布于 2011-10-10 20:49:31
简短的回答是“它没有”。对齐与堆管理器的实现细节相关联,仅此而已。您的堆管理器可能出于各种原因(例如效率、体系结构、作者的想法或其他原因)而需要对齐。如果你有理由关心,请与我们分享。
顺便说一下:
4-字节=字8-字节=2 x字
这是一个假设,是不正确的,并导致了许多各种各样的,有时昂贵和总是不可原谅的软件移植问题。字的大小取决于使用的硬件架构、操作系统、语言和编译器。
https://softwareengineering.stackexchange.com/questions/113521
复制相似问题