有一个相对较新的 Linux ABI 称为 x32,其中 x86-64 处理器以 32 位模式运行,因此指针仍然只有 32 位,但仍然使用 64 位架构特定的寄存器。因此,与普通 32 位一样,您的最大内存使用量仍被限制为 4GB,但您的指针使用的缓存空间比 64 位少,您可以有效地执行 64 位算术,并且您可以访问更多寄存器(16) 比普通 32 位 (8) 中的要好。
假设您的工作负载非常适合 4GB,那么 x32 的性能是否会比 x86-64 差?
在我看来,如果您不需要额外的内存空间,则不会丢失任何东西——您应该始终获得相同的性能(当您已经适合缓存时)或更好(当节省的指针空间让您更适合缓存时) . 但如果有分页/TLB/等,我不会感到惊讶。我不知道的细节。