相关疑难解决方法(0)

带有x86-64 ISA的32位指针:为什么不呢?

x86-64指令集添加了更多寄存器和其他改进,以帮助简化可执行代码.但是,在许多应用中,增加的指针大小是一种负担.每个指针中额外的未使用字节会阻塞缓存,甚至可能溢出RAM.例如,GCC使用-m32标志构建,我认为这就是原因.

可以加载32位值并将其视为指针.这不需要额外的指令,只需加载/计算32位并从结果地址加载.但是,这个技巧不可移植,因为平台有不同的内存映射.在Mac OS X上,保留了整个低4 GiB的地址空间.尽管如此,对于我编写的一个程序,0x100000000L在使用改进的性能大大优于真正的64位地址或编译之前,仍坚持添加32位"地址" -m32.

使用32位x86-64平台有任何根本障碍吗?我认为支持这样的嵌合体会增加任何操作系统的复杂性,任何想要最后20%的人应该只是Make it Work™,但似乎这仍然是最适合各种计算密集型程序的.

performance 64-bit operating-system x86-64 32bit-64bit

10
推荐指数
2
解决办法
1012
查看次数