我看到很多人对 64 位库很着迷,
并且总体上更喜欢它们,而不是 32 位计数器部件。
我意识到有很多讨论在翻译过程中被遗漏了,而且 64 位经常被高估。
该设置是 Web 应用程序上调用的库,我知道每次点击都会生成一个新的 Web 应用程序实例。因此,我认为 64 位是不必要的,因为实例的 RAM 使用量绝不会超过 2Gb。
如能帮助我将非常感激!:)
答案1
你是对的 - 一般来说你不需要担心 64 位库或可执行文件,除非你 (a) 需要大的地址空间(比如 > 2 GB)或 (b) 你有一个性能至关重要的应用程序(x86-64 可用的寄存器数量是 x86 的两倍,代码运行速度通常提高 30% 左右)。
答案2
x86_64 默认具有双倍寄存器数、SSE2/NX 和许多其他较新功能,可以提高性能和可靠性。
64 位虚拟机和 32 位虚拟机的性能特点是什么?
通常,与在 32 位 VM 上运行相同的应用程序相比,64 位 VM 能够寻址更多内存的好处是性能会略有下降。这是因为系统中的每个本机指针占用 8 个字节而不是 4 个字节。加载这些额外数据会影响内存使用量,从而导致执行速度略慢,具体取决于 Java 程序执行期间加载了多少指针。好消息是,在 64 位模式下运行的 AMD64 和 EM64T 平台中,Java VM 获得了一些额外的寄存器,可以使用这些寄存器来生成更高效的本机指令序列。这些额外的寄存器将性能提升到这样的程度:在比较 32 位和 64 位执行速度时,性能通常不会有任何损失。
在 SPARC 上,将运行在 64 位平台上的应用程序与运行在 32 位平台上的应用程序进行比较时,性能差异在 64 位 VM 上大约会降低 10-20%。在 AMD64 和 EM64T 平台上,此差异范围为 0-15%取决于应用程序执行的指针访问量。
您可以在这里看到许多基准:Ubuntu 32 位、32 位 PAE、64 位内核基准测试。一般来说,性能提升约为 0-15%,但结果可能会有很大差异,尤其是在一些大量使用寄存器/计算(尤其是 64 位数学)的应用程序上