什么

前端之家收集整理的这篇文章主要介绍了什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有一个相对new Linux ABI referred to as x32,其中x86-64处理器以32位模式运行,因此指针仍然只有32位,但仍然使用64位架构特定的寄存器.所以你仍然限制在4GB的最大内存使用量,就像普通的32位一样,但你的指针占用的缓存空间比在64位时少,你可以有效地进行64位运算,并且可以访问更多的寄存器(16)比你在香草32位(8).

假设你的工作负载很好地适应4GB,那么x32的性能是否会比x86-64更差?

在我看来,如果你不需要额外的内存空间什么都不会丢失 – 你应该总是获得相同的性能(当你已经适应缓存时)或更好(当指针空间节省让你更适合缓存) .但如果有分页/ TLB /等,我不会感到惊讶.我不知道的细节.

最佳答案
当然,如果你有一个多线程程序,x32上的数据结构较小这一事实可能会导致线程之间的缓存线冲突 – 不同的对象可能在x32模式下分配到同一缓存行,而在x86_64模式下分配不同的缓存行.如果两个线程独立地修改这些对象,则缓存ping-ponging可能会严重降低x32代码的速度.当然,无论指针大小如何,这种缓存效果都可能发生,但如果代码已经调整为假设64位指针,那么转向32位指针可能会对事物进行调整.

猜你在找的Linux相关文章