为了账号安全,请及时绑定邮箱和手机立即绑定

为什么System V / AMD64 ABI要求16字节堆栈对齐?

为什么System V / AMD64 ABI要求16字节堆栈对齐?

慕村9548890 2020-02-02 14:40:36
我在不同的地方都读到,这样做是出于“性能原因”,但是我仍然想知道在哪些特殊情况下通过16字节对齐可以提高性能。或者,无论如何,选择它的原因是什么。编辑:我想我以一种误导的方式写了这个问题。我并不是在问处理器为什么使用16字节对齐的内存才能更快地完成工作,这在文档中到处都有解释。我想知道的是,强制16字节对齐比只让程序员在需要时自己对齐堆栈更好。我之所以这样问是因为,根据我在汇编方面的经验,堆栈强制执行有两个问题:仅对执行的代码的不到1%有用(因此,另外99%的实际开销);而且它也是错误的非常普遍的来源。因此,我想知道它最终将如何获得回报。尽管我对此仍然不确定,但我接受彼得的答案,因为它包含了我最初问题的最详细答案。
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 988 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信